Javascript 为什么我的代码不能产生预期的结果?它打印的比我想要的多
这是我的代码,我希望它打印出一个数字,相反,它打印出一个数字加上我所有的代码Javascript 为什么我的代码不能产生预期的结果?它打印的比我想要的多,javascript,Javascript,这是我的代码,我希望它打印出一个数字,相反,它打印出一个数字加上我所有的代码 职能员工(salaryJan、salaryFeb、salaryMar){ this.salaryJan=salaryJan; this.salaryFeb=salaryFeb; this.salaryMar=salaryMar; } var dennis=新员工(657576318000); Employee.prototype.sumAll=函数(){ var总和=0; 对于(本公司的工资){ 总和+=此[工资];
职能员工(salaryJan、salaryFeb、salaryMar){
this.salaryJan=salaryJan;
this.salaryFeb=salaryFeb;
this.salaryMar=salaryMar;
}
var dennis=新员工(657576318000);
Employee.prototype.sumAll=函数(){
var总和=0;
对于(本公司的工资){
总和+=此[工资];
}
控制台日志(总和);
};
dennis.sumAll();
目前,我的代码打印出来:
22206函数(){
var总和=0;
对于(本公司的工资){
总和+=此[工资];
}
控制台日志(总和);
}
我只想要22206
,我不知道为什么它也会打印出一些代码
对此我有一把JSFIDLE小提琴:问题是:
for (salary in this)
这将遍历此
的所有属性。让我们看看这些属性:
this.salaryJan
this.salaryFeb
this.salaryMar
Employee.prototype.sumAll
您有4个属性,这就是您看到的打印到控制台的属性
您应该使用以下方法:
这是一个。嗨,达林,但如果我的代码是这样,你的方法就不起作用了,如何解决此问题?在这种情况下,您需要测试属性是否不是函数:
for (prop in this) {
if (this.hasOwnProperty(prop))
sum += this[prop];
}
}