为什么我拿到i了。。。

来源:7-2 [JavaScript]作用域

underwater

2017-01-24 02:44

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


写回答 关注

2回答

  • 慕斯卡8874433
    2017-01-24 14:53:01
    已采纳

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

    underw...

    非常感谢!

    2017-02-25 00:38:34

    共 1 条回复 >

  • king0964
    2019-02-20 11:47:13

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

JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281112 学习 · 1020 问题

查看课程

相似问题