Javascript 将多个对象传递给构造函数
我有一个构造函数,用于将新数据推送到数组(在本例中为Javascript 将多个对象传递给构造函数,javascript,Javascript,我有一个构造函数,用于将新数据推送到数组(在本例中为allEntries) 我正在尝试找出如何为this.info传递多个对象,类似于: allEntries.push( new entry( 'title one', ['info 1', 'info 2'] ) ); { title: 'title one', info : [ { name: 'info 1'}, { name: 'info 2'} ] }
allEntries
)
我正在尝试找出如何为this.info
传递多个对象,类似于:
allEntries.push( new entry( 'title one', ['info 1', 'info 2'] ) );
{
title: 'title one',
info : [
{ name: 'info 1'},
{ name: 'info 2'}
]
}
为了获得类似于:
allEntries.push( new entry( 'title one', ['info 1', 'info 2'] ) );
{
title: 'title one',
info : [
{ name: 'info 1'},
{ name: 'info 2'}
]
}
如何执行此操作?传递一个数组并在其上迭代以使用添加所有项 可以这样称呼:
var myEntry = new entry('foobar', ['info1', 'info2']);
顺便说一句:通常,类的名字前面有一个大写字母,以便能够将它们与函数(总是小写)区分开来,所以你可能想把它命名为“Entry”。这可以通过不同的方式来解决
我修复了一些明显的语法错误。这里不需要setter。这没有依赖注入无法完成的事情。介意我不同意吗?如果
info
是一个字符串数组,而this.info
应该是一个对象数组,该对象的字符串存储在名为name
的属性中,则为是。没错。我忽略了这样一个事实,他想要传递一个字符串数组,并将其转换为一个属性为name
的对象数组,和字符串作为值。我得到了this.info.push的错误“无法调用未定义的”方法“push”part@cat-t:this作为第二个参数传递给.forEach
:info.forEach(函数(infoItem){…},this)
。另请参见:@crush:MDN的链接就足够了。人们可以在那里找到polyfill。
function entry () {
this.title = null;
this.info = [];
}
entry.prototype.setInfo = function (info) {
this.info.push({name: info});
return this;
};
entry.prototype.setTitle = function (title) {
this.title = title;
return this;
}
var e1 = (new entry)
.setInfo('foo')
.setInfo('bar')
.setTitle('Hello World!');