如何使用未分配的属性创建Javascript构造函数/原型?

时间:2014-03-26 02:26:32

标签: javascript class object constructor prototype

我是从OOP世界来到这里,并试图绕过"班级"在Javascript中。我希望能够创建一个具有属性的类,但不必立即为它们赋值。如下所示:

var MyObject = function(id) {
    this.id = id;
    // Create the property so it is present on all instances but don't require it to be assigned to right away.
    this.friendId;
}

MyObject.prototype = {
    constructor: MyObject

    // Etc...
}

有没有办法做到这一点,或者我只是没有得到如何在Javascript中工作?

2 个答案:

答案 0 :(得分:2)

只需省略声明中的属性:

function MyObject(id) 
{
    this.id = id;
}

var obj = new MyObject(123);
console.log(obj.friendId); // undefined

或者,在构造函数中将其显式设置为null

答案 1 :(得分:1)

这篇Mozilla开发者网络文章很好读。 它比较基于类和基于原型的语言,并提供Java和JavaScript中的并排代码示例。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Details_of_the_Object_Model

引用文章。

  

构造函数或原型指定初始属性集。可以动态地向单个对象或整个对象集添加或删除属性。