我如何使用原型?

时间:2015-10-20 19:37:27

标签: javascript prototype

我正在尝试学习如何在javascript中使用原型,我希望有人可以向我解释以下内容。

假设我有一个原型的对象:

function Calc(sumOne, sumTwo) {
    this.sumOne = sumOne;
    this.sumTwo = sumTwo;
}

Calc.prototype.add = function() {
    var sum = this.sumOne + this.sumTwo;
    return sum;
}

然后可以说这些对象存储在数组中,就像这样创建它们一样。

var numbers = [];

numbers.push(new Calc(1, 2));
numbers.push(new Calc(3, 4));
numbers.push(new Calc(5, 6));

这会导致数组看起来像这样

numbers = [{sumOne: 1, sumTwo: 2}, {sumOne: 3, sumTwo: 4}, {sumOne: 5, sumTwo: 6}];

如果我现在想在这些对象上运行原型以获得结果(3,7和11)。我该怎么做?

2 个答案:

答案 0 :(得分:1)

对于数组中的每个Calc实例,请在其上调用.add()

numbers.map(function(calc) {
  return calc.add();
});

答案 1 :(得分:0)

迭代它们并调用原型方法

function Calc(sumOne, sumTwo) {
  this.sumOne = sumOne;
  this.sumTwo = sumTwo;
}

Calc.prototype.add = function() {
  var sum = this.sumOne + this.sumTwo;
  return sum;
}


var numbers = [];

numbers.push(new Calc(1, 2));
numbers.push(new Calc(3, 4));
numbers.push(new Calc(5, 6));


numbers.forEach(function(calcObject, index) {
  numbers[index] = calcObject.add();

});
console.log(numbers)