在大量的代碼,這是非常普遍的看到init
函數聲明,如下所示:JavaScript對象中的init函數有什麼特別之處嗎?
var someObject = {
// What is this for?
init: function() {
// Call here.
}
};
是否有什麼特別之處初始化函數,我應該知道嗎?
在大量的代碼,這是非常普遍的看到init
函數聲明,如下所示:JavaScript對象中的init函數有什麼特別之處嗎?
var someObject = {
// What is this for?
init: function() {
// Call here.
}
};
是否有什麼特別之處初始化函數,我應該知道嗎?
對於也許有的框架(儘管prototype
和backbone
使用initialize
代替),但並沒有什麼特別之處init
功能在普通的舊的JavaScript
摘要:像別人說的 - init
屬性不是魔術的JavaScript。
更長的故事:Javascript對象僅僅是key-> value存儲。如果你自己實例化一個對象,那麼它幾乎是空的 - 它只從構造函數的原型繼承一些屬性。這是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
屬性,您可以閱讀有關屬性。 here。