![](/img/trans.png)
[英]Is there anything bad about attaching a variable to a function in Javascript?
[英]Is there anything special about the init function in JavaScript objects?
在很多代碼中,很常見的是會聲明一個init
function,如下所示:
var someObject = {
// What is this for?
init: function () {
// Call here.
}
};
我應該知道關於 init function 有什么特別之處嗎?
也許對於某些框架(盡管prototype
和backbone
使用initialize
代替),但是在普通的舊 javascript 中的init
函數並沒有什么特別之處
執行摘要:就像其他人說的 - Javascript 中的init
屬性不是魔法。
更長的故事:Javascript 對象只是鍵->值存儲。 如果您自己實例化 object,那么它幾乎是空的——它只從其構造函數的原型中繼承了一些屬性。 這是來自 Chrome 檢查器的示例轉儲:
> obj = {}
Object
+-__proto__: Object
|-__defineGetter__: function __defineGetter__() { [native code] }
|-__defineSetter__: function __defineSetter__() { [native code] }
|-__lookupGetter__: function __lookupGetter__() { [native code] }
|-__lookupSetter__: function __lookupSetter__() { [native code] }
|-constructor: function Object() { [native code] }
|-hasOwnProperty: function hasOwnProperty() { [native code] }
|-isPrototypeOf: function isPrototypeOf() { [native code] }
|-propertyIsEnumerable: function propertyIsEnumerable() { [native code] }
|-toLocaleString: function toLocaleString() { [native code] }
|-toString: function toString() { [native code] }
|-valueOf: function valueOf() { [native code] } > obj = {}
-- 如您所見,列表中沒有init
。 與init
最接近的是constructor
屬性,您可以在此處了解相關信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.