JavaScript构造函数

时间:2010-01-19 18:51:59

标签: javascript constructor

我不完全理解如何在这个对象创建方法上应用构造函数:


var MyObject = {
   ...
};

我知道你可以这样做:


var MyObject = new Object();
MyObject.prototype.constructor = function(props)
{
  ...
}

...或


function MyObject(prop1, prop2)
{
 this.prop1 = prop1;
 ...
}

我可以这样做吗?


var MyObject = {
   MyObject: function(prop1, prop2)
   {
     ...
   }
}

3 个答案:

答案 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中的“对象”视为静态类。