function F() {
function C() {
return this;
}
return C();
}
var o = new F();
答案 0 :(得分:7)
细分组件元素。
假设您要这样做:
function C() {
return this;
}
var o = C();
此处显然没有对象上下文,因此this
为window
。
在构造函数中包装该设置并不会改变直接调用C()
的上下文中不涉及任何对象的事实。
答案 1 :(得分:2)
函数C()不是F的方法,你需要做的是这样的事情:
function F() {
this.C = function() {
return this;
}
return this.C();
}
var o = new F();
虽然这有点令人费解,但是你可以这样做来实现同样的目的:
function F() {}
var o = new F();
答案 2 :(得分:0)
C()
不是f
对象的方法。如同,您无法致电o.C();
。如果这是有道理的。并且因为您返回C()
的返回值而不是C的新实例,它将返回窗口对象。
答案 3 :(得分:0)
function F(){return this; }也将返回窗口。因此var obj = this。只要“这个”没有其他价值,它就不是“这个”的价值。