深度剖析JavaScript之深入浅出问题

本篇文章给大家分享的是深度剖析JavaScript之深入浅出问题的操作详解,内容挺不错的,希望可以帮助到有需要的朋友

1.函数实际传参可以通过arguments来获得。

2.arguments是一个类数组的对象,原型并不是Array.prototype,因此没有join等数组方法;

3.foo(1,2),arguments[2]时因为未传入参数,失去绑定关系,

  1. foo(x,y,z){arguments[1]=12  //y=12arguments[2]=13;//z仍然未定义}foo(1,2);

登录后复制

但如果是在严格模式下,arguments总是传入来的参数的副本,因此实际参数不能修改;并且arguments.calle也是禁止使用的。

4.

立即学习“Java免费学习笔记(深入)”;

  1. this.x=9;    var module={        x:81,        getX:function(){            console.log(this.x);        }    };    module.getX();    var getX=module.getX;//将module的属性赋给getX变量    getX();//这时候的this应该指向全局变量    //为了理解,个人认为也可以看做getX=function(){return this.x;} getX()    var boundGetX=getX.bind(module);//绑定module对象    boundGetX();

登录后复制

5.bind有函数currying(科里)化的功能,绑定部分参数,之后只需传入剩下的参数

  1. function add(a,b,c){    console.log(a+b+c);   }    var func=add.bind(undefined,100);//this暂时是undefined    func(1,2);    var func2=func.bind(undefined,200);//注意这里是func    func2(10);

登录后复制

注意在new时,bind会被忽略掉,因为返回的是原型是new这个构造器的prototype属性的空对象(如果没有返回的对象)

  1. function foo(){        this.a=100;        return this.b;    }    var func=foo.bind({b:2});    console.log(func());//2    var o=new func();    console.log(o);//foo {a: 100}

登录后复制

6.bind方法模拟(暂时放着)

深度剖析JavaScript之深入浅出问题

相关推荐:

深入浅出JavaScript

初识 深入浅出JavaScript

JavaScript深入浅出(进阶)

以上就是深度剖析JavaScript之深入浅出问题的详细内容,更多请关注【创想鸟】其它相关文章!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

点点赞赏,手留余香

给TA打赏
共0人
还没有人赞赏,快来当第一个赞赏的人吧!
    编程技术

    处理ajax跨域请求parsererror错误

    2025-3-8 14:38:47

    编程技术

    js实现登录与注册界面

    2025-3-8 14:38:56

    0 条回复 A文章作者 M管理员
    欢迎您,新朋友,感谢参与互动!
      暂无讨论,说说你的看法吧
    个人中心
    购物车
    优惠劵
    今日签到
    私信列表
    搜索