此Javascript代码在嵌套函数(嵌套在构造函数中)中使用'this'关键字:
o=new MyCtor();
for (var p in o) {
print(p);
print(o[p]);
}
function MyCtor() {
this.a=1;
var instance=this;
nested();
function nested() {
this.b=2;
instance.c=3;
}
}
结果如下:
a
1
c
3
注意print()只是将输出转储到屏幕上,就像浏览器中的alert()一样(我使用独立的Spidermonkey进行测试,而不是在浏览器中进行测试)。请注意,'this.b'无法创建属性'b'。
只是想知道构造函数中嵌套函数中的'this'是什么?
答案 0 :(得分:2)
由于您直接调用该函数(而不是作为对象属性)且没有new
关键字,this
是Web浏览器中的默认对象window
,{{1在节点等)。
答案 1 :(得分:0)
它指的是窗口。通过运行这个小提琴并打开控制台来看看自己:http://jsfiddle.net/sveinatle/9brLj/