在下面的代码中,我想将带参数“winter”的print_season函数的引用传递给函数inner_function。
tony = {
print_season: function (season) {
console.log(">>season is" + season);
},
report: function () {
console.log(">>report");
this.inner_object.inner_function(this.print_season("winter"));
},
inner_object: {
inner_function: function(callback) {
console.log(">>inner_function=" + callback());
}
}
}
tony.report();
然而,当我这样做时,调用而不是传递函数,我最终得到:
TypeError: callback is not a function
console.log(">>inner_function=" + callback());
在这种情况下,如何传递具有特定参数的函数,但确保不调用它?
感谢。
答案 0 :(得分:1)
您没有传递任何功能。
您实际上只是传递undefined
您可能希望print_season
返回回调函数:
...
print_season: function (season) {
// return a callback function
return function() {
console.log(">>season is" + season);
};
},
...
答案 1 :(得分:0)
您正在调用print_season
。
尝试这样的事情。
this.inner_object.inner_function(function() { this.print_season("winter") });
答案 2 :(得分:0)
试试这个:
tony = {
print_season: function (season) {
console.log(">>season is" + season);
},
report: function () {
console.log(">>report");
this.inner_object.inner_function(function(){this.print_season("winter")});
},
inner_object: {
inner_function: function(callback) {
console.log(">>inner_function=" + callback());
}
}
}
tony.report();
或者这个:
tony = {
print_season: function (season) {
return function(){
console.log(">>season is" + season);
}
},
report: function () {
console.log(">>report");
this.inner_object.inner_function(this.print_season("winter"));
},
inner_object: {
inner_function: function(callback) {
console.log(">>inner_function=" + callback());
}
}
}
tony.report();
目标是让函数(回调)不是别的。