2011-07-17 65 views

回答

9

對於也許有的框架(儘管prototypebackbone使用initialize代替),但並沒有什麼特別之處init功能在普通的舊的JavaScript

6

摘要:像別人說的 - 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

相關問題