是否有可能擁有一個自我執行的函數,它是一個對象屬性值將值賦給對象中的其他屬性?在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