簡體   English   中英

JavaScript 對象中的 init function 有什么特別之處嗎?

[英]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 有什么特別之處嗎?

也許對於某些框架(盡管prototypebackbone使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM