Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我的代码不能产生预期的结果?它打印的比我想要的多_Javascript - Fatal编程技术网

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];
    }
}