插入script标签,然后立即移出,为什么里面的代码一定会执行完毕了呢?

下面这段代码插入了一段script代码,然后立即将其移出,那是什么机制保证了移出节点(removeChild函数)前,里面的代码已经执行完毕了呢?
vara=1,
code='a=2;',
doc=document,
body=doc.body,
script=doc.createElement('script');
script.innerHTML=code;
body.appendChild(script).parentNode.removeChild(script);
console.log(a);
慕码人2483693
浏览 393回答 2
2回答

繁花如伊

并不是你想的那样立即执行的,这种链式调用是前一个执行完毕,再执行后面的内容比如varobj={a:0,parentNode:function(){console.log(this.a);returnthis;},appendChild:function(){console.log(this.a);returnthis;},removeChild:function(){console.log(this.a);returnthis;}}obj.appendChild().parentNode().removeChild();运行时都是等待上一部执行完成,再进入下一步
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript