(function (window){
function MyDate(){}
MyDate.now=function (){
console.log('静态方法')
}
MyDate.prototype.getD=function (){
console.log('原型方法')
}
window.MyDate = MyDate
})(window)
(function(window) {})(window)
可以简化看成这样()();
而()()就是一个匿名函数自执行的写法。
圆括号中的window为实参,接受window对象(window对象是全局环境下的)。
而function后面的圆括号中的window为局部变量,不是全局的window对象.
所以这样写可以提高js性能,减少作用域链查询时间。
望采纳!!!点击回答右侧采纳即可!!
在这个代码中,window 参数被用作一个命名空间,用于将 MyDate 函数和它的静态方法 now 和原型方法 getD 注册到全局对象 window 上。
具体来说,这个代码将定义了一个 MyDate 函数,然后将它的静态方法 now 和原型方法 getD 定义在 MyDate 上。最后,它将 MyDate 函数赋值给 window 对象的一个属性,使得 MyDate 函数和它的方法可以在全局范围内使用。
因此,在调用 MyDate.now() 或 new MyDate().getD() 时,都可以在全局范围内访问到这些方法。
如果将 window 参数省略掉,那么 MyDate 函数和它的方法就只能在当前脚本的作用域内使用,无法在全局范围内访问到。