Streszczenie: Jak inni mówią - init
nieruchomość nie jest magia JavaScript.
Dłuższa historia: obiekty JavaScript są po prostu plikami klucza-> wartościowymi. Jeśli tworzysz obiekt samodzielnie, jest on prawie pusty - dziedziczy on tylko niektóre właściwości z prototypu swojego konstruktora. To jest nora próbka z Chrome inspektora:
> 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 = {}
- jak widać, nie ma init
na liście. Najbardziej zbliżona do init
będzie właściwość constructor
, o której można przeczytać np. here.