【问题标题】:Why is this unary function within another javascript function?为什么这个一元函数在另一个 javascript 函数中?
【发布时间】:2019-05-23 15:07:16
【问题描述】:

我有一些之前的开发人员更新的 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);
}

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

这样做有正当理由吗?

【问题讨论】:

  • 它似乎正在尝试传递 jquery 对象
  • 这是一种保存角色的可怕方法,写这句话的人显然不喜欢清晰的代码。

标签: javascript reactjs unary-operator


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-10-18
    • 2022-11-30
    • 1970-01-01
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    • 2021-07-25
    • 2022-01-09
    相关资源
    最近更新 更多