热门
最新
红包
立Flag
投票
同城
我的
发布
CSDN App 扫码分享
评论
点赞
打赏
- 复制链接
- 举报
下一条:
一、一般函数调用以下代码,属于全局性调用,this代表全局对象。var a = 1;function foo() { console.log(this.a);}foo(); // 112345二、作为对象方法调用以下代码,this指向上层对象即obj。function foo() { console.log(this.x);}var obj = {};obj.x = 1;obj.foo = foo;obj.foo(); // 11234567三、作为构造函数调用所谓构造函数,是指通过这个函数,可以生成一个新对象。var x = 5;function foo() { this.x = 1;}var obj = new foo();console.log(obj.x); // 1 console.log(x); // 512345678obj.x = 1 表明foo函数内的this不是全局对象,this指向新对象obj,全局变量x的值不变。四、apply、call、bind调用具体区别:https://blog.csdn.net/qq_24917475/article/details/90702539apply()是函数的一个方法,作用是改变函数的调用对象。第一个参数表示改变后的调用这个函数的对象。因此,this指向的是第一个参数。apply()参数为空时,默认为全局对象。var x = 0;function foo() { console.log(this.x);}var obj = {};obj.x = 1;obj.foo = foo;obj.foo(); // 1obj.foo.apply(); // 0obj.foo(); // 1————————————————版权声明:本文为CSDN博主「Say Something」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_24917475/article/details/90696826