请考虑以下代码示例:
var helper = {
isCheetah: function(a) {
return a === "Cheetah";
},
isLepoard: function(a) {
return a === "Lepoard";
},
researchedSpecies: function(a) {
return this.isCheetah(a) || isLepoard(a);
},
getResearchedSpecies: function(allSpecies) {
return _.filter(allSpecies, this.researchedSpecies);
}
};
// prints "isCheetah: true"
console.log("isCheetah:" + helper.isCheetah("Cheetah"));
// complains "this.isCheetah is not a function
helper.getResearchedSpecies(["Zebra",
"Cheeta",
"Lepoard",
"Godzilla"]);
以下是jsbin的实时代码:http://jsbin.com/liyohumewe/edit?js,console
在没有lodash的情况下,这在正常功能中正常工作。将lodash扔进mixute并且嵌套级别函数不再起作用。我想这是因为this
关键字在被lodash调用时,不再引用父级,而是转向lodash(这是正确的吗?)。
无论如何,我该如何解决这个问题?如何在lodash调用的嵌套函数中调用父函数?
答案 0 :(得分:1)