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