如何在Javascript中制作自定义对象?

Rya*_*hel 8 javascript oop prototype class object

可能重复:
如何在JavaScript中"正确"创建自定义对象?

很抱歉,如果之前已经回答过,但我对Javascript中创建自定义对象的选择数量感到有些不知所措.我不确定他们各自的优点或缺点,或者他们是否有所不同.

以下是我发现构建对象的一些不同方法:

1:新对象

person = new Object()
person.name = "Tim Scarfe"
person.height = "6Ft"

person.run = function() {
    this.state = "running"
    this.speed = "4ms^-1"
}
Run Code Online (Sandbox Code Playgroud)

2:文字表示法

timObject = {
    property1 : "Hello",
    property2 : "MmmMMm",
    property3 : ["mmm", 2, 3, 6, "kkk"],
    method1 : function(){alert("Method had been called" + this.property1)}
};
Run Code Online (Sandbox Code Playgroud)

3:功能

function AdBox() {
    this.width = 200;
    this.height = 60;
    this.text = 'default ad text';
    this.prototype.move = function() {
        // code for move method goes here
    }
}
this.prototype.display = function() {
    // code
}
Run Code Online (Sandbox Code Playgroud)

我甚至看到了更多的方法,但它们似乎不太常见.正如你所看到的,当有人只想要一个带有字段和方法的简单对象时,我并不确定标准是什么.

谢谢阅读.

Kev*_*nis 0

第一个和第二个选项在功能上是相同的。大多数开发人员选择使用文字表示法,因为它更短一些。

第三个选项通常仅在您希望创建可重用对象(即继承)时使用。在这种情况下,该函数充当“构造函数” - 这是一个返回新对象实例的函数,该实例可以继承构造函数原型中定义的方法和属性。