如何创建带有未分配属性的Javascript构造函数/原型
How to create Javascript constructor/prototype with unassigned properties?
我是从面向对象的世界来的,试图把我的头绕在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中工作的?
直接从声明中省略该属性:
function MyObject(id)
{
this.id = id;
}
var obj = new MyObject(123);
console.log(obj.friendId); // undefined
或者,在构造函数中显式地将其设置为null
这篇Mozilla Developer Network的文章很值得一读。它比较了基于类和基于原型的语言,并提供了Java和JavaScript的并行代码示例。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Details_of_the_Object_Model引自文章
构造函数或原型指定一个初始属性集。可以动态地为单个对象或整个对象集添加或删除属性。
相关文章:
- 比较元素值并将属性分配给较大的
- 将一个元素的所有属性分配给另一个元素
- 如何将可拖动属性分配给所有实例
- 未调用通过 onclick 属性分配的处理程序
- 在IE中收到错误,例如“参数数量错误或属性分配无效”
- node.js process.env:将 process.env 属性分配给字符串类型中的未定义结果
- 打字稿对象解构会导致“预期属性分配”
- js 对象的属性分配上的 lint 错误
- 车把循环为属性分配值
- 将新属性分配给内置类型实际上是非法的
- 使用decorator将属性分配给非原型
- 为什么我的属性分配不正确
- 控制台中的不确定性主干集合属性分配
- 将新属性分配给对象's使用JavaScript的属性From Variable
- 使用jq将子字典的属性分配给父字典
- Javascript OOP类-将属性分配给函数
- JavaScript中有效的属性名、属性分配和访问
- 这是将属性分配给对象的有效方法吗?
- 谷歌地图无法为类属性分配导航器位置
- 可以通过javascript设置鼠标悬停的html属性,但不能在Firefox中为鼠标悬停属性分配函数