Javascript 'this' 关键字 在嵌套函数中
Javascript 'this' keyword Inside a Nested Function
这个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 进行测试,而不是在浏览器中)。 请注意,属性 'b' 不能由 'this.b' 创建。
只是想知道构造函数中的嵌套函数中的"这"指的是什么?
由于您直接调用函数(而不是作为对象属性)并且没有new
关键字,因此this
是默认对象(在Web浏览器中window
,在node中global
等)。
在jsfiddle上观看现场演示。
它指的是窗口。通过运行此小提琴并打开控制台来亲自查看:http://jsfiddle.net/sveinatle/9brLj/
相关文章:
- 用嵌套函数和默认函数定义函数
- d3中堆栈函数和嵌套函数之间的差异
- JavaScript 中的嵌套函数和 “this” 关键字
- 嵌套到另一个函数中的Fancybox函数;不起作用
- Javascript中带有返回值的嵌套函数
- 访问嵌套函数结构中的JavaScript父函数变量
- 从嵌套函数访问函数属性
- 如何在javascript中使用嵌套函数作为生成器(使用“inner”yields)
- Javascript嵌套函数属性继承
- 具有嵌套对象数组的 Javascript 对象的递归搜索函数
- Facebook Javascript 函数嵌套循环
- 将动态 AJAX 函数嵌套在 JavaScript 函数中 - 并保持更新
- 对由多个groupBy函数嵌套的对象数组进行分组
- 从父函数返回什么以获取从子函数/嵌套函数返回的值
- jQuery匿名函数-嵌套函数
- ajax调用函数嵌套
- 函数嵌套括号的Python风格指南是什么?
- setTimeout函数中的关键字,该函数嵌套在on()方法下.但这并没有奏效
- 嵌套异步函数嵌套同步函数
- 如何克服函数嵌套