为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

小怪兽爱吃肉 2019-03-06 14:19:07
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)分别有什么含义?一般有什么作用呢?
查看完整描述

5 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

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


查看完整回答
反对 回复 2019-03-15
?
qq_遁去的一_1

TA贡献1725条经验 获得超8个赞

function A(a){ ... }
A(window, undefined)

这样写的话,会不会比较好理解呢?


查看完整回答
反对 回复 2019-03-15
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

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


查看完整回答
反对 回复 2019-03-15
?
桃花长相依

TA贡献1860条经验 获得超8个赞

window 的意思比较好理解,为了把 myApp 绑定到全局对象上。


查看完整回答
反对 回复 2019-03-15
  • 5 回答
  • 0 关注
  • 751 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号