在很多代码中,通常会看到声明init
函数,如下所示:
var someObject = {
// What is this for?
init: function () {
// Call here.
}
};
我应该知道的init函数有什么特别之处吗?
答案 0 :(得分:9)
对于某些框架(尽管prototype
和backbone
使用initialize
代替),但普通旧javascript中的init
函数没有什么特别之处
答案 1 :(得分:6)
执行摘要:像其他人一样 - init
属性在Javascript中并不神奇。
更长的故事:Javascript对象只是键 - >值存储。如果您自己实例化一个对象,那么它几乎是空的 - 它只从其构造函数的原型继承了一些属性。这是来自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