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

Posted

技术标签:

【中文标题】如何在Javascript中制作自定义对象? [复制]【英文标题】:How to make custom objects in Javascript? [duplicate] 【发布时间】:2012-06-13 22:42:15 【问题描述】:

可能重复: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

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

感谢阅读。

【问题讨论】:

在你的AdBox函数中,它应该是this.move = function而不是this.prototype.move = function @zzzzBov:是的,我刚刚从here 复制和粘贴。他们说这两种方法都可以,但有区别。 ***.com/questions/1595611/… @zerkms:哦,这正是我要找的。谢谢! 附带说明,about.com 往往没有关于编程语言的非常好的信息。 【参考方案1】:

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

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

【讨论】:

哪一部分说不使用 new 关键字是“好习惯”?我不得不不同意这个建议。 射击你是对的错误链接。我会在找到正确的链接后更新它(这只是不用于 new object())。抱歉,我在原始(已删除)评论中误述了这一点)。

以上是关于如何在Javascript中制作自定义对象? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JavaScript 中“正确”创建自定义对象?

如何在 JavaScript 中为自定义对象创建方法?

如何使用杰克逊制作自定义反序列化器将数字(即部门 ID)转换为部门对象?

leaflet.draw.js可以自定义工具吗,比如制作一个调色板之类的。

如何在设计师的“收藏编辑器窗口”中制作可编辑的对象?

加入域时如何将自定义组自动加入到本地管理员组