haoxiaolan 2023-01-09 21:23 采纳率: 35.7%
浏览 13
已结题

javascrip函数自调用


(function (window){
    function MyDate(){}
    MyDate.now=function (){
        console.log('静态方法')
    }
    MyDate.prototype.getD=function (){
        console.log('原型方法')
    }
    window.MyDate = MyDate
})(window)

img

这俩个地方写window参数的原因是什么呀,这样写有啥什么作用吗?

  • 写回答

2条回答 默认 最新

  • Halifax ‎ 2023-01-09 21:39
    关注

    (function(window) {})(window)
    可以简化看成这样()();
    而()()就是一个匿名函数自执行的写法。

    圆括号中的window为实参,接受window对象(window对象是全局环境下的)。
    而function后面的圆括号中的window为局部变量,不是全局的window对象.
    所以这样写可以提高js性能,减少作用域链查询时间。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月13日
  • 已采纳回答 1月12日
  • 创建了问题 1月9日

悬赏问题

  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失