的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