是否有可能拥有一个自我执行的函数,它是一个对象属性值将值赋给对象中的其他属性?在javascript中自动执行函数作为对象属性值
例如 - 我想这样做是这样的:
var b={
c:'hi',
d:null,
e:new function(){this.d=5}
};
但是“这个”新功能里面似乎是指B.E.是否可以从函数内部访问b.e父级(即b)?
是否有可能拥有一个自我执行的函数,它是一个对象属性值将值赋给对象中的其他属性?在javascript中自动执行函数作为对象属性值
例如 - 我想这样做是这样的:
var b={
c:'hi',
d:null,
e:new function(){this.d=5}
};
但是“这个”新功能里面似乎是指B.E.是否可以从函数内部访问b.e父级(即b)?
这就是你如何做到的。
通常被称为模块模式(more info)
var b = function() {
var c = 'hi';
var d = null;
return {
c : c,
d : d,
e : function() {
// this function can access the var d in the closure.
d = 5;
}
}
}();
您可以在function
中访问值,你只需要摆脱new
,即
e: function() {
this.d = 5;
}
是的,但是,除非我叫b.e(),否则不会将值赋给b.d。我希望能够使用自动执行功能来完成它。 – 2012-07-27 12:45:49
但是你必须明确地调用b.e() - 这将e绑定到对象b。自选功能并非如此。 – Christoph 2012-07-27 12:46:01
我看不到你为什么想要像现在这样实例化一个匿名函数。 – Utkanos 2012-07-27 12:44:24
这里您的最终目标是什么?在对象创建期间执行代码以编辑对象的其他属性? – jackwanders 2012-07-27 12:44:35
@jackwanders - 是的。我只是想知道是否可以这样做,作为下面jakeclarckson方法的一种捷径。 – 2012-07-27 12:50:20