我有一个构造函数,用于将新数据推送到数组(在本例中为allEntries
)
function entry (title, info) {
this.title = title;
this.info = [ { name : info } ];
}
var allEntries = []
我正在试图弄清楚如何为this.info
传递多个对象,例如:
allEntries.push( new entry( 'title one', ['info 1', 'info 2'] ) );
为了获得类似的东西:
{
title: 'title one',
info : [
{ name: 'info 1'},
{ name: 'info 2'}
]
}
我将如何做到这一点?
答案 0 :(得分:2)
传递一个数组并迭代它以使用Array.prototype.forEach添加所有项目。
function entry (title, info) {
this.title = title;
this.info = [];
info.forEach(function (infoItem) {
this.info.push({ name : infoItem});
}, this);
}
这样称呼:
var myEntry = new entry('foobar', ['info1', 'info2']);
顺便说一句:通常,类在前面用大写字母命名,以便能够将它们与函数(总是小写)区分开来,因此你想要将它命名为“Entry”。
答案 1 :(得分:0)
这可以通过不同的方式来解决......
http://jsfiddle.net/MattLo/Nz6BD/
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!');