-1

为什么在窗口对象中找不到测试函数声明?谢谢

!function(){
   function test(){
    console.log("testing");
   }   
   var check = window["test"]
   console.log(check); //undefined
 }();
4

1 回答 1

0

由于function test()在顶级函数表达式的范围内是本地的,因此它不绑定到window全局范围。您可以将其称为局部变量:

!function() {
    function test() {
        console.log('testing')
    }
    console.log(test)
}()

或者直接将其绑定到window全局变量:

!function() {
    window.test = function test() {
        console.log('testing')
    }
    var check = window['test']
    console.log(check)
}()

您不能将本地范围作为变量访问 - 有关更多详细信息,请参阅此问题

于 2016-05-15T17:35:03.893 回答