我有一些以前的开发人员已更新的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”返回窗口对象。
尝试以这种方式做事是否有正当理由?
答案 0 :(得分:4)
在没有+
之前将其视为函数声明。如果看到没有名称,则代码将引发错误。我们需要使用+
使其成为表达式。您还可以使用其他运算符,例如!
。
这是使用IIFE的另一种方式。代码与
几乎相同onCartClick: function() {
(function($) {
$(this).parent().parent().find('.cart-loader').removeClass('hide');
$('.cart-text').removeClass('hide');}, 4000);
}) (jQuery);
}