JavaScript对象中的init函数有什么特殊之处吗?

JavaScript对象中的init函数有什么特殊之处吗?,javascript,Javascript,在许多代码中,经常会看到声明init函数,如下所示: var someObject = { // What is this for? init: function () { // Call here. } }; 我应该知道init函数有什么特别的地方吗?对于某些框架(尽管prototype和backbone使用initialize),但是在普通的老javascript中,init函数没有什么特别之处,执行摘要:就像其他人说的那样-init属性在java

在许多代码中,经常会看到声明
init
函数,如下所示:

var someObject = {

    // What is this for?
    init: function () {
        // Call here.
    }
};

我应该知道init函数有什么特别的地方吗?

对于某些框架(尽管
prototype
backbone
使用
initialize
),但是在普通的老javascript中,
init
函数没有什么特别之处,执行摘要:就像其他人说的那样-
init
属性在javascript中不是魔法

长话短说:Javascript对象仅仅是键->值存储。如果你自己实例化一个对象,那么它几乎是空的——它只从构造函数的原型继承一些属性。这是Chrome inspector的一个示例转储:

> 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
属性,您可以阅读有关该属性的信息,例如