的window
不能被重新定义像我们看到在这个例子:Jquery和IIFE包装澄清?
http://i.stack.imgur.com/IYX0p.jpg
那么,为什么jQuery的启动本身window
(它甚至使用相同的名称)?
(function(window, undefined) {...})(window);
我的意思是,它可能有使用window
里面......
附:该undefined
招有什么关系呢?
的window
不能被重新定义像我们看到在这个例子:Jquery和IIFE包装澄清?
http://i.stack.imgur.com/IYX0p.jpg
那么,为什么jQuery的启动本身window
(它甚至使用相同的名称)?
(function(window, undefined) {...})(window);
我的意思是,它可能有使用window
里面......
附:该undefined
招有什么关系呢?
我想一个可能的解释是,使JQuery的更容易端口在其他情况下,在全局对象可能不被命名为window
,甚至是嵌入在一些其他脚本在window
引用当前作用域(或激活对象)中的有效标记。
无论如何,我认为这可能是有用的唯一原因是因为jQuery代码可以使用window
名称而不用担心,因为任何供应商都可以将该名称绑定到它想要的任何对象,只需通过更改该行的一行jQuery源代码(最后一个)。
你能告诉我一个不同'window'的例子吗? – 2013-03-14 11:47:25
我没有。只是猜测。这被称为*模块模式*,其中代码被封装在一个函数中,并且除了形式参数以外不访问任何名称。在不修改最后一行的情况下,对我来说没有意义,因为参数和参数的命名方式相同 – Raffaele 2013-03-14 12:00:22
亚历克斯,为什么它不发送'这个'? – 2013-03-14 11:37:01
@ alex23 by muiltiple windows你的意思是实际上Iframes。但如果我将jquery添加到主窗口中,应该还是有问题。? – 2013-03-14 11:43:21
“窗口”在将来可能会被重新定义是否不合理?我不排除这种可能性,因此会感谢我的所有网站都没有因为更新或流行的新浏览器而崩溃。 – Archer 2013-03-14 12:12:47