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