上記のコードが 1 を出力するのはなぜですか;
foo() が実行されると、これが出力されます。これはウィンドウ オブジェクトです。foo() の getName はグローバル関数式になりますか? 次の var getName も関数式です。なぜ出力されますか? 結果は 1;
foo を実行すると、次のコードと同等になりますか?
Fooが呼び出されないとき
Foo()を呼び出すとき
呼び出し後、Foo の return this は window を指すため、最終結果は 1 になります。
return this
リーリー
Foo().getName(); Foo で getName を実行します
リーリー リーリー
console.log(Foo()) を確認してください。本当に window ですか?
Foo 関数の getName は var で宣言されていないため、グローバルであるため、Foo が実行されると、関数内の getName 関数が外部で定義された getName 関数を上書きします
Fooが呼び出されないとき
リーリーFoo()を呼び出すとき
リーリー呼び出し後、Foo の
return this
は window を指すため、最終結果は 1 になります。リーリー
Foo().getName(); Foo で getName を実行します
リーリー リーリー
console.log(Foo()) を確認してください。本当に window ですか?
Foo 関数の getName は var で宣言されていないため、グローバルであるため、Foo が実行されると、関数内の getName 関数が外部で定義された getName 関数を上書きします