javascript - 为什么这个一元函数在另一个 javascript 函数中?

标签 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);
}

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

尝试这样做有正当理由吗?

最佳答案

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

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

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

关于javascript - 为什么这个一元函数在另一个 javascript 函数中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56278172/

相关文章:

javascript - 使用cordova进行http重定向,如何重新加载浏览器重定向到的页面?

javascript - 使用 React-Hooks,如何防止从 Array.map 创建的组件在其中一个兄弟组件更改状态时重新呈现?

java - 使用 List<UnaryOperator<...>> 映射对象

java - 一元运算与赋值融合

javascript - 使用 Amazon SNS 推送通知( Node )

javascript - 如何使用 react-easy-crop 来反射(reflect)从 react-easy-crop 到另一个 div 中呈现的实时图像的位置变化?

javascript - 如何在没有表单的情况下发布数据

reactjs - 错误 : Request failed with status code 405

javascript - 如何过滤我的搜索?

c# - 如何声明一个新的运算符 "!??"(测试对象不为空)