Passed in undefined argument in jQuery core source code

江枫思渺然 提交于 2019-11-28 07:18:31

问题


I noticed that in the jQuery core, one of the two arguments passed in is undefined.

(function( window, undefined ) {

    // Use the correct document accordingly with window argument (sandbox)
    var document = window.document;
    var jQuery = (function() {
        // ...defintion of the rest of the core...
    window.jQuery = window.$ = jQuery;
})(window);

Can anyone explain why the second argument is undefined?

Thanks in advance!


回答1:


Undefined is a type but is also a global variable.

You can have a module that overwrites the value of undefined by doing undefined = whatever.

jQuery uses a immediate function to scope window and undefined.

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/undefined




回答2:


Since someone could overwrite undefined like this

undefined = true;

Code of your immediate function will pass it as it should be (stay undefined). I think it's mentioned in 10 Things I Learned from the jQuery Source.



来源:https://stackoverflow.com/questions/5395252/passed-in-undefined-argument-in-jquery-core-source-code

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!