相关疑难解决方法(0)

使用(函数(窗口,文档,未定义){...})(窗口,文档)赋予什么优势?

我想使用这种模式是新的热点,但我不明白它的优点是什么,我不理解范围的含义.

模式:

(function(window, document, undefined){
  window.MyObject = {
    methodA: function() { ... },
    methodB: function() { ... }
  };
})(window, document)
Run Code Online (Sandbox Code Playgroud)

所以我对此有几个问题.

封装像这样的对象有什么特别的优势吗?
为什么窗口文档被输入而不是正常访问?
为什么undefined要传递这个?
将我们正在创建的对象直接附加到窗口是一个特别好的主意吗?

我已经习惯了我称之为Crockford风格的Javascript封装(因为我把它从Douglas Crockford Javascript视频中删除了).

NameSpace.MyObject = function() {
  // Private methods
  // These methods are available in the closure
  // but are not exposed outside the object we'll be returning.
  var methodA = function() { ... };

  // Public methods
  // We return an object that uses our private …
Run Code Online (Sandbox Code Playgroud)

javascript

59
推荐指数
2
解决办法
4万
查看次数

为什么jQuery的动画扩展"jQuery Color"的闭包函数采用未定义的值作为它的第二个参数?

可能重复:
带有'undefined'参数的JavaScript函数

我在这里查看jQuery Color源代码

http://code.jquery.com/color/jquery.color-2.1.0.js

我发现闭包函数采用未定义的值作为它的第二个参数.见下文:

(function( jQuery, undefined ) {

    var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",

    // plusequals test for += 100 -= 100
    rplusequals = /^([\-+])=\s*(\d+\.?\d*)/,
    // a set of RE's that can match strings and generate color tuples.
Run Code Online (Sandbox Code Playgroud)

或者您可以在源代码中看到它.看第二个参数.

我想知道的是为什么第二个参数未定义?

我认为这是一种严格设置函数只接收一个参数的方法.

我是对的?或者任何人都可以帮助我?

javascript jquery

4
推荐指数
1
解决办法
133
查看次数

标签 统计

javascript ×2

jquery ×1