【问题标题】:Obtuse Javascript / jQuery coding style? [duplicate]钝的 Javascript / jQuery 编码风格? [复制]
【发布时间】:2013-12-09 06:41:35
【问题描述】:

我正在尝试了解一个用于控制 3D CSS 导航的不寻常库。我正在查看代码,但我只是不明白样式。

javascript 代码开始

;(function($) {
'use strict';

. . . 

})(jQuery);

1) 我真的对前面的分号感到困惑,这是有原因的吗?

2) 我从未见过格式: (function($) { 我在看什么?这是某种迟钝的 jquery 格式吗?我见过很多与 jquery 相关的其他格式.. 例如..

$(function() {  // as shorthand for $( document ).ready()

但我以前从未见过 (function($).. 我错过了什么吗?

3) 为什么是'use strict';那里的代码,如果这是一个 jQuery 代码。看起来很不寻常。

4) 最后为什么 {jQuery) 代码在函数的末尾?

哦,作为参考,我正在查看的代码是 http://www.jqueryscript.net/demo/Easy-jQuery-3D-Side-Menu-Plugin-with-CSS3-Box-Lid/

非常感谢,Zip。

【问题讨论】:

  • 你找到答案了吗?这会被问到很多
  • 如果您搜索它,您可以找到每个问题的答案。
  • 嗯.. 我在 Google 中搜索了 20 次左右,在 Bing 中搜索了四五次。你是在告诉我这些是特定的堆栈溢出搜索吗?
  • “为什么是 'use strict';如果这是 jQuery 代码,代码就在那里。” jQuery 只是一个库。您仍在使用该库编写 JavaScript。无论您使用哪个库,"use strict" 都会很有用。

标签: javascript jquery


【解决方案1】:

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_modehttp://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/

【讨论】:

    猜你喜欢
    • 2016-03-21
    • 2010-09-28
    • 1970-01-01
    • 2013-07-07
    • 2011-06-02
    • 2018-03-29
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    相关资源
    最近更新 更多