为什么该一元函数位于另一个javascript函数中?

时间:2019-05-23 15:07:16

标签: javascript reactjs unary-operator

我有一些以前的开发人员已更新的JavaScript。看起来他们将代码包装在函数中,并带有另一个以“ +”为前缀的函数。经过一些研究,another SO post提到它被用来将内部跟随函数视为表达式,但是我不确定在这种情况下它的目的是什么。

之前

onCartClick: function() {
    $(this).parent().parent().find('.cart-loader').removeClass('hide');
    $('.cart-text').removeClass('hide');}, 4000);
}

之后

onCartClick: function() {
    +function($) {
        $(this).parent().parent().find('.cart-loader').removeClass('hide');
        $('.cart-text').removeClass('hide');}, 4000);
    } (jQuery);
}

我试图了解更改的原因,并且无法联系之前的开发人员以了解他们的意图。 “之前”代码作为函数“此”返回接收事件的元素。 “ After”代码没有,因为函数的“ this”返回窗口对象。

尝试以这种方式做事是否有正当理由?

1 个答案:

答案 0 :(得分:4)

在没有+之前将其视为函数声明。如果看到没有名称,则代码将引发错误。我们需要使用+使其成为表达式。您还可以使用其他运算符,例如!

这是使用IIFE的另一种方式。代码与

几乎相同
onCartClick: function() {
    (function($) {
        $(this).parent().parent().find('.cart-loader').removeClass('hide');
        $('.cart-text').removeClass('hide');}, 4000);
    }) (jQuery);
}