DOMContentLoaded会影响预解析的结果吗?
高洛峰
高洛峰 2016-11-09 15:16:10
0
2
740

先贴代码,在html文档底部插入如下代码:

!function(window){ document.addEventListener("DOMContentLoaded", function(){ init4();//这里为何会访问到init4? }, false) }(window) var init4=function(){ console.log(4); }

init4是函数表达式,按说在预解析的时候,是undefined,只有执行到这一句的时候,才会被赋值为一个函数,但是如果使用了DOMContentLoaded,函数却可以在赋值之前调用后面的函数,是为什么?DOMContentLoaded?还是别的?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全員に返信 (2)
代言

简单说一下你这里的执行顺序。

先是变量提升一个空init4,
然后是匿名自函数,
然后添加了一个监听器DOMContentLoaded,
然后申明了一个匿名函数并赋值给init4,
然后页面DOM响应完毕,触发监听事件的回调。


いいねを押す+0
    三叔
    !function(window) { setTimeout(function() {init4();}, 0); }(window) var init4=function() { console.log(4); }

    你这个和上方这个没什么区别,当你执行函数的时候,下方的

    var init4=function() { console.log(4); }

    早就运行了

    いいねを押す+0
      最新のダウンロード
      詳細>
      ウェブエフェクト
      公式サイト
      サイト素材
      フロントエンドテンプレート
      私たちについて 免責事項 Sitemap
      PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!