Javascript 从同一对象中的另一个调用函数

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

在下面的代码中,我想将参数为“winter”的print_seasure函数的引用传递到函数internal_函数中

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我进行了更新。