通过构造函数实例化时添加额外属性的Javascript语法
Javascript syntax for adding extra properties while instantiating via constructor
我正在用一堆本地实例化的javascript对象填充数组。对象是通过构造函数创建的。是否有一种方法来添加额外的属性对象,而不扩展构造函数,以包括所有可能的输入属性?
var item = function(name, id) {
this.name = name;
this.id = id;
this.sharedMethod = function() {
// do stuff
}
}
var someArray = [
new item("one", 1) {house: "blue", car: "new"},
new item("two", 2) {pet: "dog"},
new item("three", 3),
new item("four", 4) {potatoChips: "yes", random: "sure is"}
];
我知道上面的someArray例子中的大括号是非法的。虽然,我不确定正确的方式去做这个方法。是否有一些特殊的语法来实现这一点,保留构造函数的使用(对于共享函数),但不涉及必须将每个项存储在var中,然后手动将它们推入数组。我还希望避免必须扩展构造函数以包含大量不同的属性。
我试着搜索了一段时间,但似乎找不到合适的搜索词来找到答案。
您可以简单地使用单个变量来存储对象:
var item = function(name, props) {
this.name = name;
this.props = props;
this.sharedMethod = function() {
// do stuff
}
}
然后简单地传递一个带有几个属性的对象:
new item("one", {"house": "blue", "car": "new"});
您也可以直接将它们设置为属性,而不是通过props.[property]
访问它们。通过循环遍历than对象并将它们设置为属性,如下所示:
var item = function(name, props) {
this.name = name;
for(prop in props)
this[prop] = prop;
this.sharedMethod = function() {
// do stuff
}
}
相关文章:
- 保存具有相同属性 JavaScript 的元素上的值
- DOM 元素上的空样式属性:JavaScript
- 基于一个属性Javascript检索多个对象
- xml获取属性javascript不会;无法处理childNodes
- 当输入填充了必需的属性javascript/html/css时,如何更改焦点颜色
- 如何处理未定义属性的未定义属性 javascript 类型错误
- 向嵌套对象添加属性 - Javascript
- 属性 Javascript 的访问属性
- 更改链中的 css 属性 - JavaScript
- 更改属性 Javascript 方式的值
- 如何从 url 解析 xml 获取属性 javascript
- 语法错误:缺少:在属性 javascript 之后
- 创建 if 条件基于 CSS 属性 -- JavaScript
- 访问节点的属性javascript二进制搜索树
- 访问父函数属性Javascript
- 为什么未定义此对象的属性?Javascript
- 访问私有属性Javascript OOP
- 访问数组中的属性?(Javascript)
- 动态添加参数作为对象的属性-JavaScript
- 冲突/方法/属性Javascript错误