我期待obj成为F1的实例('this.prop'中的'this'在下面的代码片段中引用了F1对象,同样我认为'这个'在'返回此'的C1中指的是F1,这是不是这样的。它指的是Global Window对象),但实际上它是Window的一个实例。这是为什么 ?你能解释一下吗?
function F1() {
this.prop = 5;
function C1() {
return this;
}
return C1();
}
var obj = new F1();
答案 0 :(得分:1)
如果您只是创建F1
的实例,那么就这样做:
function F1() {
this.prop = 5;
}
var obj = new F1();
你不需要退货。
this
内的C1
与其外的this
不同。如果您想保留外部的this
以便C1
可以使用它,请将其存储到另一个变量中
function F1() {
//preserve "this" from outside
var that = this;
this.prop = 5;
function C1() {
return that; //"that" is "this" of the outside
}
}