该函数旨在对以下类型的对象进行计数:cow和hadCalf:null,并将值存储到numToBreed,在控制台中我总是得到零。为什么?
var forestCows = [
{name: "Marcus", type: "calf", hadCalf: null},
{name: "Isaiah", type: "bull", hadCalf: null},
{name: "Lemuel", type: "cow", hadCalf: null},
{name: "Daniel", type: "cow", hadCalf: null},
{name: "Joseph", type: "cow", hadCalf: "Legolas"}
];
Object.prototype.noCalvesYet=function(){
if(this.type=="cow" && this.hadCalf==null){
return true;}
else{return false;}
};
Array.prototype.countForBreeding=function(){
var numToBreed=0;
for(var i=0;i<this.length;i++){
this[i].noCalvesYet();
if(this[i].noCalvesYet===true){
numToBreed++;
}
}
return numToBreed;
};
var store=forestCows.countForBreeding();
console.log(store);
我也尝试创建一个新函数以更好地了解条件“ if”中的布尔值
var executeThis=function(){return true;};
executeThis();
if(executeThis===true){console.log(3+5);}
在这种情况下,控制台中什么也没有显示,为什么?
`
`
最佳答案
尝试这个:
...
for(var i=0;i<this.length;i++){
if(this[i].noCalvesYet()===true){
numToBreed++;
}
}
...
错误,此方法未调用noCalvesYet:
if(this[i].noCalvesYet===true)
关于javascript - Javascript bool 值和原型(prototype),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43558353/