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

为什么我拿到i了。。。

 <script>
  function test() {
   var i = 1;
   var func = new Function(document.write(i));
   func();
  }
  test();
 </script>


正在回答

2 回答

这是闭包吧,func可以访问它上层函数的变量。

0 回复 有任何疑惑可以回复我~
#1

underwater 提问者

非常感谢!
2017-02-25 回复 有任何疑惑可以回复我~

格式问题,Function里面是字符串,要把var func = new Function(document.write(i));改为var func = new Function("document.write(i)");就能出来同样的结果;你这种写法应该相当于调用了window.document的方法,所以才能拿到i

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我拿到i了。。。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信