我是从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中工作?
答案 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
引用文章。
构造函数或原型指定初始属性集。可以动态地向单个对象或整个对象集添加或删除属性。