-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 に答える