关于文字对象,也许还有自动执行函数
About literal objects and, perhaps, auto executable functions
var a = {
b: {
c: 1
},
d: this.b.c
};
错误:this.b is undefined
我怎么打电话给b.c?
var a = {
b: {
c: 1
}
};
a.d = a.b.c;
是唯一的方法。this.b.c
在构建a
对象的作用域中执行,而不是在对象本身中执行;因此this
= window
, window.b == undefined
虽然Matt告诉你只有一种方法,但这可能是另一种选择:
var a = {
b: {c: 1},
d: function(){return this.b.c;}
}
alert(a.d()); //=> 1
或
var a = {
b: {c: 1},
d: function(){if (this.d instanceof Function) {this.d = this.b.c;}}
}
a.d();
alert(a.d); //=> 1
或执行匿名函数:
var a = function(){
var obj ={b: {c: 1}}
obj.d = obj.b.c;
return obj;
}();
alert(a.d); //=> 1
相关文章:
- 等待回调函数执行
- 暂停函数执行流程,直到ajax请求完成
- Bigcommerce-是否可以在函数执行后更改文本
- 如何对jquery中的未命名函数执行.call()
- 等待函数执行后再继续
- mootools类型的函数将文本作为函数执行
- 停止从另一个函数执行Javascript函数
- Jquery回调函数执行多次
- 如何使即兴 jquery 暂停当前函数执行
- JavaScript 双函数执行
- 来自函数 Javascript 的 NaN 返回值 ||函数执行顺序
- 如何在 JS 中调用 2 次或更多次时延迟函数执行
- 函数执行的次数超出预期
- JS中函数执行错误
- 为什么这个函数执行了两次
- 从子函数执行父函数;t更新父级'的属性
- 如何在jQuery函数执行's处于活动状态
- 使用javascript函数执行php文件
- jQuery函数执行顺序
- javascript中同步函数执行中的问题