使用对象字面量表示法在 JavaScript 中构建构造函数的最佳方法是什么?
var myObject = {
funca : function() {
//...
},
funcb : function() {
//...
}
};
我希望能够打电话
var myVar = new myObject(...);
并将参数传递给 myObject 内的构造函数。
This is not“JSON 表示法”,这是 JavaScript对象字面量表示法。 JSON 只是 JS 对象字面量表示法的子集,但除了看起来相似之外,它们没有任何共同点。 JSON 用作数据交换格式,如 XML。
你想做的事是不可能的。
var myObject = {};
已经创建了一个对象。没有什么可以实例化的。
但是,您可以创建一个构造函数并将方法添加到其原型中:
function MyObject(arg1, arg2) {
// this refers to the new instance
this.arg1 = arg1;
this.arg2 = arg2;
// you can also call methods
this.funca(arg1);
}
MyObject.prototype = {
funca : function() {
// can access `this.arg1`, `this.arg2`
},
funcb : function() {
// can access `this.arg1`, `this.arg2`
}
};
您实例化的每个对象new MyObject()
将继承原型的属性(实际上,实例只是获得原型对象的引用)。
有关 JavaScript 对象和继承的更多信息:
- 处理对象 https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Working_with_Objects
- 对象模型的详细信息 https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Details_of_the_Object_Model
- 重温继承 https://developer.mozilla.org/en/JavaScript/Guide/Inheritance_Revisited
Update2:
如果你必须实例化许多同类对象,那么使用构造函数+原型。如果你只需要one对象(如单例),则无需使用构造函数(大多数情况下)。您可以直接使用对象文字表示法来创建该对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)