Javascript 将方法添加到操纵数组的构造函数中

Javascript 将方法添加到操纵数组的构造函数中,javascript,arrays,methods,constructor,prototype,Javascript,Arrays,Methods,Constructor,Prototype,我试图创建一个简单的实践程序,它有一个Store构造函数,它接受一个inventoryList数组,一个InventoryItem构造函数,它创建一个要存储在inventoryList数组中的每个项目的对象。我想向InventoryItem列表中添加一个方法,该方法将获取一个数字并将其添加到列表中的每个项目中。下面是我的代码: var Store = function(inventory){ this.inventory = inventory; } var InventoryItem

我试图创建一个简单的实践程序,它有一个
Store
构造函数,它接受一个
inventoryList
数组,一个
InventoryItem
构造函数,它创建一个要存储在
inventoryList
数组中的每个项目的对象。我想向
InventoryItem
列表中添加一个方法,该方法将获取一个数字并将其添加到列表中的每个项目中。下面是我的代码:

var Store = function(inventory){
    this.inventory = inventory;
}

var InventoryItem = function(cost, color, size){
    this.cost = cost;
    this.color = color;
    this.size = size;
}

//create each inventory item as an object

var lamp = new InventoryItem(40.00, 'blue', 'small');
var throwPillow  = new InventoryItem(25.00, 'yellow', 'medium');
var sconce = new InventoryItem( 18.00, 'gold', 'large');
var candles = new InventoryItem(10.00, 'white', 'small');
var curtains = new InventoryItem(30.00, 'purple', 'large');

//store inventory items into an inventory object

var inventorylist = [lamp, throwPillow, sconce, candles, curtains];

// add number of items to each item

InventoryItem.prototype.howMany = function(num){
    function addCount(inventorylist){
        for(var i = 0; i < inventorylist.length; i++){
            inventorylist[i].howMany = num;
        }
    }
}

//store inventory within a store
var deannaStore = new Store(inventorylist);
var dionStore = new Store(inventorylist);
var mikeStore = new Store(inventorylist);
var存储=功能(库存){
这个。存货=存货;
}
var InventoryItem=功能(成本、颜色、大小){
成本=成本;
这个颜色=颜色;
这个。大小=大小;
}
//将每个库存项目创建为一个对象
var灯=新库存项目(40.00,'蓝色','小型');
var throwPillow=新的库存项目(25.00,'黄色','中等');
var sconce=新的库存项目(18.00,“黄金”、“大型”);
var烛光=新的库存项目(10.00,'白色','小型');
var=新的库存项目(30.00,'紫色','大型');
//将库存项目存储到库存对象中
var inventorylist=[灯、吊灯、灯罩、蜡烛、窗帘];
//向每个项目添加项目数
InventoryItem.prototype.howMany=函数(num){
函数addCount(清单列表){
对于(变量i=0;i
当我尝试向列表中的项目添加编号时,遇到问题 示例:
dionStore。有多少(15)

这给了我一个错误:
uncaughttypeerror:dionStore.howmount不是一个函数


任何帮助都将不胜感激,最好详细解释一下为什么这样做不起作用。

问题是,方法
库存项目
对象定义了多少个
,但您尝试将其调用到
dionStore
对象,它是一个
存储

你能描述一下你想要达到的目标吗

EDIT1:

可以将
howMany
方法添加到
Store
,如Lashane提及,这将为其数组中的每个
InvetoryItem
创建一个
quantity
属性

Store.prototype.howMany = function(num){
    function addCount(inventorylist){
        for(var i = 0; i < inventorylist.length; i++){
            inventorylist[i].quantity = num;
        }
    }
}
var存储=功能(库存){
这个。存货=存货;
}
Store.prototype.howmount=函数(){
var totalQuantity=0;
对于(变量i=0;i

您的原型定义了一个函数,但什么也不做。而且它在错误的原型上。你在找这个吗

Store.prototype.howMany = function(num){ 
    for(var i = 0; i < this.inventory.length; i++){
        this.inventory[i].howMany = num;
    }
}
Store.prototype.howMany=函数(num){
对于(var i=0;i
InventoryItem.prototype。多少个
应该是
Store.prototype。如果我试图为每个项目添加计数,为什么它会出现在Store prototype上而不是库存项目上?这仍然会产生相同的错误。我希望能够向inventoryList中的每个项目添加特定数量,以便如果调用它,它将返回每个存储中每个项目的数量。当我调用
deannaStore时。返回的数量(15)
0。它应该存储15作为列表中每个项目的数量。在调用多少之前,您必须设置数量。请参见更新的示例
Store.prototype.howMany = function(num){ 
    for(var i = 0; i < this.inventory.length; i++){
        this.inventory[i].howMany = num;
    }
}