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

标签 javascript oop class object prototype

<分区>

Possible Duplicate:
How to “properly” create a custom object in JavaScript?

很抱歉,如果之前已经回答过这个问题,但我对在 Javascript 中创建自定义对象方面提供的选择数量有点不知所措。我不确定它们各自的优点或缺点,或者它们是否完全不同。

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

1:新对象

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

person.run = function() {
    this.state = "running"
    this.speed = "4ms^-1"
}

2:文字表示法

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

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
}

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

感谢阅读。

最佳答案

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

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

关于javascript - 如何在 Javascript 中制作自定义对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10973123/

相关文章:

javascript - 无法 .load() 包含类实例的 PHP 页面

python - 朴素贝叶斯分类(使用 NLTK)

r - 有没有办法在 R 中创建 "fragile"属性?

java - 如何将值传递给构造函数并从同一类中的方法使用它?

javascript - 无法让我的 if else 语句逻辑工作

javascript - IE 甚至 Chrome 有时不会用 jquery/javascript 填充时间

javascript - PDF 中的 anchor 标记在 firefox 和 safari 中不可点击

javascript - Jquery wrap()- 正斜杠前的字符 `/`

JavaScript 构造函数

php - 你如何在 php 中管理数据库连接?