猿问

请教如下这段代码的参数含义

github上看到的代码:


(function (window) {


    // declare

    var myApp = function () {

        return;

    };


    // your sdk init function

    myApp.prototype.init = function () {

        // ...

    };


    // define your namespace myApp

    window.myApp = new myApp();


})(window, undefined);

请问第一个括号里的(window)、和末尾的(window, undefined)分别有什么含义?一般有什么作用呢?


小怪兽爱吃肉
浏览 752回答 5
5回答

MMTTMM

首先,你先去掉传入的参数,(function() { ... })(),你发现这就是一个立即执行函数,它的作用是什么,可以避免外界变量的影响,如果要使用,外界的变量怎么办,(function($) { ... })(jQuery),这种形式想必你不陌生吧。另外,我们经常这样使用(function (window, document, undefined) { ... })(window, document),因为在ES3中undefined是变量可以被定义,而在严格模式下会报错,所以将undefined当成一个局部变量使用。

qq_遁去的一_1

function A(a){ ... }A(window, undefined)这样写的话,会不会比较好理解呢?

慕田峪7331174

这是一个自执行函数,第一个括号里的window是形参,末尾的两个是实参。window本身就是javascript中范围最大的一个对象,传入这个参数也是没有必要的

桃花长相依

window 的意思比较好理解,为了把 myApp 绑定到全局对象上。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答