为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕码人2483693 2019-05-23 16:46:25
下面这段代码插入了一段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);
查看完整描述

2 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

并不是你想的那样立即执行的,这种链式调用是前一个执行完毕,再执行后面的内容比如
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();
运行时都是等待上一部执行完成,再进入下一步
                            
查看完整回答
反对 回复 2019-05-23
  • 2 回答
  • 0 关注
  • 392 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信