我正在尝试了解一个用于控制3D CSS导航的不寻常的库。我正在审查代码,但我只是不明白这种风格。
javascript代码启动
;(function($) {
'use strict';
. . .
})(jQuery);
1)我真的对领先的分号感到困惑,是否有理由这样做?
2)我从未见过这样的格式:(函数($){我在看什么?这是某种迟钝的jquery格式吗?我见过很多与jquery相关的其他格式......例如。< / p>
$(function() { // as shorthand for $( document ).ready()
但我以前从未见过(函数($)...我错过了什么?
3)为什么'严格使用';代码那里,如果这是一个jQuery代码。似乎很不寻常。
4)最后为什么函数末尾的{jQuery)代码?
哦,作为参考我正在看的代码是http://www.jqueryscript.net/demo/Easy-jQuery-3D-Side-Menu-Plugin-with-CSS3-Box-Lid/
非常感谢,Zip。
答案 0 :(得分:0)
1)此分号用于确保在使用minifiers时不会发生冲突,这会将所有Javascript相互添加。当组合多个Javascript文件时,有时会发生某个文件有错误并“忘记”以分号结束最后一行。分号确保前一个代码行结束。
2,4)(function($){启动一个直接执行的匿名函数。接下来会发生什么。首先我们创建一个像我们一样的匿名函数。:
function($) {
}
在这个函数中,$是一个函数参数。现在,如果我们想要执行这个函数,我们需要将它括在括号中,使它成为:
(function($) {
});
由于我们想要将jQuery对象添加为此函数的参数,我们将其作为参数提供,就像我们在每个函数中一样:
(function($) {
})(jQuery);
3)严格模式是ECMAScript 5中的一项新功能,允许您在“严格”的操作环境中放置程序或函数。这种严格的上下文可以防止采取某些行动并引发更多例外。
在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/Strict_mode和http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/
了解有关严格模式的详情