为什么说new确实修改了this绑定,new的作用不是创建一个对象然后将返回的值附到对象上吗,或者将this绑定到var的对象上,应该是对obj1.a没有任何操作的不是吗
为什么说new确实修改了this绑定,new的作用不是创建一个对象然后将返回的值附到对象上吗,或者将this绑定到var的对象上,应该是对obj1.a没有任何操作的不是吗
bar 作为一个普通函数,它的this已经被绑定为了 obj1;
然而在构造函数内部,this指向新创建出的对象;
new 关键字给你做了三件事:
var o = new Object();
this = o;
...
return o;
this的指向就这么被改了;
也因此bar 虽然没有返回值,但是作为构造函数时能得到一个实例。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
看这里吧new
那句话好绕,我试图解释一下,
new
确实修改了this
,但是他做的第一件事创建一个继承foo.prototype
的对象,也就是此时的this
是指foo {}
,然后他修改的是这个this
。所以确实没任何操作。