我不完全理解如何在这个对象创建方法上应用构造函数:
var MyObject = {
...
};
我知道你可以这样做:
var MyObject = new Object();
MyObject.prototype.constructor = function(props)
{
...
}
...或
function MyObject(prop1, prop2)
{
this.prop1 = prop1;
...
}
我可以这样做吗?
var MyObject = {
MyObject: function(prop1, prop2)
{
...
}
}
答案 0 :(得分:1)
来自here
的示例创建构造函数
要编写自己的构造函数,可以在构造函数中使用this关键字来引用新创建的对象。构造函数初始化对象。
在下面的例子中:
make7Table构造函数为数字7创建一个乘法表 引入size属性以跟踪元素的数量 初始化每个元素的值
function make7Table(numElements)
{
this.size = numElements;
var cnt;
for(cnt = 0; cnt < numElements; cnt++)
{
this[cnt] = cnt*7;
}
}
// Use the constructor to create and initialize an array.
myArray = new make7Table(10);
document.write(myArray[5]);
document.write("This table has " + myArray.size + " elements");
要运行代码,请将其粘贴到JavaScript编辑器中,然后单击“执行”按钮。 myArray [5]检索值为5 * 7 = 35的元素。
答案 1 :(得分:1)
var MyObject = new Object();
MyObject.prototype.constructor = function(props)
{
...
}
与
相同var MyObject = {};
MyObject.prototype.constructor = function(props)
{
...
}
答案 2 :(得分:1)
不,你不能,那就是在MyObject上创建一个(静态)方法 - MyObject.MyObject
。在JavaScript中,构造函数是类。使用this.
在构造函数内部创建类方法和属性,或者使用MyClass.prototype.
添加到原型(构造函数外部)。您可以将JavaScript中的“对象”视为静态类。