在函数本身的参数内传递函数的目标

时间:2014-06-16 20:54:52

标签: jquery

我为这个令人困惑的头衔道歉;我希望有一个例子可以帮助澄清事情。

$(".element").functionName({
    option1:true,
    doneFunc: function(){
        thisElem = $(this);
        functionName2(thisElem);
    }
});

我正在尝试将“.element”的特定实例传递给functionName2。

1 个答案:

答案 0 :(得分:1)

您可以在运行回调之前将元素设置为变量。

示例:

var $element = $(".element");
$element.functionName({
    option1:true,
    doneFunc: function(){
        functionName2($element);
    }
});

这将"保存元素"在变量$ element中,所以你可以在函数内部使用它。

Javascript中的范围是功能级别的。这意味着在给定范围内定义的函数将可以访问定义它的环境。我们知道doneFunc可以访问$element变量。这个内部函数通常称为"lexical closure"


如果你有多个元素,我认为最好的方法是迭代你自己。

例如:

 $('.element').each(function() {
     var $element = $(this);
     $element.functionName({
         option1:true,
         doneFunc: function(){
             functionName2($element);
         }
     });
 });

这里我们看到了使用中的词法闭包。