这是我的代码,我希望它打印出一个数字,而不是打印出一个数字加上我的所有代码。
function Employee(salaryJan, salaryFeb, salaryMar){
this.salaryJan = salaryJan;
this.salaryFeb = salaryFeb;
this.salaryMar = salaryMar;
}
var dennis = new Employee(6575, 7631, 8000);
Employee.prototype.sumAll = function(){
var sum = 0;
for (salary in this){
sum += this[salary];
}
console.log(sum);
};
dennis.sumAll();
目前我的代码打印出来:
22206function (){
var sum = 0;
for (salary in this){
sum += this[salary];
}
console.log(sum);
}
我只想要22206号码,我不知道为什么它也打印出我的代码。
此外,我还有一个jsfiddle项目。提前谢谢。
答案 0 :(得分:2)
问题在于:
for (salary in this)
这将循环遍历this
的所有属性。让我们看看这些属性:
this.salaryJan
this.salaryFeb
this.salaryMar
Employee.prototype.sumAll
您有4个属性,这些属性是您打印到控制台的。
您应该使用hasOwnProperty
方法:
for (prop in this) {
if (this.hasOwnProperty(prop))
sum += this[prop];
}
}
这是一个live demo。