segmentfault上的一个问题:
一般看JQuery插件里的写法是这样的:
1 | (function($) { |
今天看到bootstrap的javascript组件是这样写的:
1 | !function( $ ){ |
为什么要在前面加一个 " ! " 呢?
原来,使用括号包裹定义函数体,解析器将会以函数表达式的方式去调用定义函数。也就是说,任何能将函数变成一个函数表达式的作法,都可以使解析器正确的调用定义函数。而 ! 就是其中一个,而 + - || 都有这样的功能。
另外,用 ! 可能更多的是一个习惯问题,不同的运算符,性能是不同的。
