初步解释:
http://www.ruanyifeng.com/blog/2012/11/require_js.html 引用阮一峰的解读
原来模块本质上是“立即执行函数”返回的一个变量
1、闭包
基本类型按值传递,对象传入引用,函数内部的 window 即全局 window ..
<script type="text/javascript"> function setName(obj){ obj.name = "xiaobai"; obj = new Object(); obj.name = "xiaohei"; } var dog = new Object(); setName(dog); console.log(dog.name); /** output xiaobai **/
传递的obj指针是按值传递的,函数调用结束后obj还指向调用前的obj
//引用《javascript高级程序设计》书中的一句话回答:当在函数内部重写引用对象obj时,这个变量引用的就是一个局部对象了。而这个局部对象会在函数执行完毕后立即销毁。
可以把ECMAScript函数的参数想想成局部变量。