0

此 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”指的是什么?

4

2 回答 2

2

由于您直接调用函数(不是作为对象属性)并且没有new关键字,this因此是默认对象(window在 Web 浏览器global中、节点中等)。

在 jsfiddle 上查看现场演示

于 2012-06-20T12:53:44.493 回答
0

它指的是窗口。通过运行这个小提琴并打开控制台自己看看:http: //jsfiddle.net/sveinatle/9brLj/

于 2012-06-20T12:55:58.610 回答