请问下面代码中的this值指向的是全局对象还是对象o?
function F () {
function C() {
return this;
}
return C();
}
var o = new F();
console.log(o.constructor.name); // Object
这里的this指向全局对象,因为 C() call without new。
这里用正常的方式调用的函数 C() ,所以this指向全局对象。
那么下面的代码呢?
function F () {
function C() {
console.log(this); // C {}
return this;
}
return new C();
}
var o = new F();
console.log(o.constructor.name); // C
在这里在 C() 的前面添加了 new ,这个函数就变成了一个构造函数,this 是一个由 C() 构造器创建的一个实例,所以在这里 this 指向了o
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。