【问题标题】:Function in a variable, passing a parameter变量中的函数,传递参数
【发布时间】:2012-04-12 20:50:23
【问题描述】:

我似乎无法重回正轨。我只是将一个函数放在一个变量中,然后想稍后调用它,并为其提供一个参数:

var logic = function(itemId) {               
    console.log(itemId);
};

jQuery("#flipright").click(function() {  logic.apply(1); } );

这会打印“未定义”。

我错过了什么?

【问题讨论】:

    标签: javascript function variables parameter-passing


    【解决方案1】:

    只需致电logic(1)
    如果要传递上下文,可以使用callapply

    logic.apply(context, [1]);
    // or
    logic.call(context, 1);
    

    如果要将上下文传递给另一个函数,则应使用 applycall - 这意味着被调用函数中的 this 关键字将引用您传递给它的任何上下文。
    这是一个场景:

    var logic = function(itemId) {               
        console.log(this,itemId);
    };
    
    jQuery("#flipright").click(function() {  
        // output to console the current jquery object and "1"
        logic.call(this,1);
    });
    

    【讨论】:

      【解决方案2】:

      制作:

      jQuery("#flipright").click(function() {  logic(1); } );
      

      apply 的参考:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply

      【讨论】:

        猜你喜欢
        • 2020-10-21
        • 2015-01-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-12
        • 2016-04-25
        • 2019-01-15
        相关资源
        最近更新 更多