Javascript 从同一对象中的另一个调用函数
在下面的代码中,我想将参数为“winter”的print_seasure函数的引用传递到函数internal_函数中Javascript 从同一对象中的另一个调用函数,javascript,Javascript,在下面的代码中,我想将参数为“winter”的print_seasure函数的引用传递到函数internal_函数中 tony = { print_season: function (season) { console.log(">>season is" + season); }, report: function () { console.log(">>report"); this.inner_o
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());
在这种情况下,如何传递带有特定参数的函数,但确保不调用它
谢谢。您正在调用
print\u season
试试这样的
this.inner_object.inner_function(function() { this.print_season("winter") });
试试这个:
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();
我们的目标是让函数(回调)而不是其他东西。您没有传递函数 您实际上只是在传递未定义的
您可能希望print\u seasure
返回回调函数:
...
print_season: function (season) {
// return a callback function
return function() {
console.log(">>season is" + season);
};
},
...
我认为OP知道这一点:“但是,当我这样做的时候,函数被调用而不是传递,我最终得到:[……]。问题是“在这种情况下,如何传递带有特定参数的函数,但确保不调用它?”Ahh ok将进行更新,然后:-)@FelixKling我进行了更新。