1 javascript syntax automatic-semicolon-insertion
我在下面的JavaScript代码中意识到,我们需要添加一个;刚刚调用后$('#myButton').click(function() {})才能$('.lala').myFunction()调用.
$('#myButton').click(function() {})
(function ($) {
$.fn.myFunction = function (opt) {
alert("inside myFunction")
}
})(jQuery);
$('.lala').myFunction()
Run Code Online (Sandbox Code Playgroud)
为什么;在这里有很大的不同?我认为在大多数情况下;,语句之间可以省略JavaScript.
因为函数调用可以返回另一个函数.如果没有分号,IIFE周围的括号将被解释为.click()可能返回的函数的参数列表,因此它被视为您编写的:
$('#myButton').click(function() {})(function ($) {
$.fn.myFunction = function (opt) {
alert("inside myFunction")
}
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
只是摆脱了依赖自动分号插入的习惯,因为结果有时并不明显.如果你总是在你的陈述之后加上分号,那么你不会感到惊讶,也不必担心像这样的模糊案例.