在下面的代码中,我有两个书籍集合。一个系列有“Moby Dick”,另一个系列有“The Firm”。但是,当我看第二集时,它也有莫比迪克。如何创建不共享相同数据的图书?如何让每个实例继承自己的成员实例?
function Collection() {
var stuff = [];
this.get = function() {
return stuff;
};
this.add = function (item) {
stuff.push(item);
};
}
function Books() {}
Books.prototype = new Collection();
var myBooks = new Books();
myBooks.add("Moby Dick");
var yourBooks = new Books();
yourBooks.add("The Firm");
console.log(yourBooks.get()); // ["Moby Dick", "The Firm"]
我结束了这是怎么回事:
function Collection() {
var stuff = [];
this.get = function(){
return stuff;
};
this.add = function(item){
stuff.push(item);
};
}
function Books() {
Collection.call(this);
};
Books.prototype = new Collection();
Books.prototype.constructor = Books;
var myBooks = new Books();
myBooks.add("Moby Dick");
var yourBooks = new Books();
yourBooks.add("The Firm");
console.log(myBooks.get());
您制作的图书原型*本身*一个实例*的集合,我不认为是你想要的。请参阅下面的马特的回答,你想'东西'是一个集合,并且是书籍的财产。 –