以下のようなJavaScriptコード:関数出力対象ではない関数型内のJavaScript typeof演算(本)
function aa(){
console.log(typeof(this))
}
console.log(typeof(aa))
aa()
出力は、このコードを実行した後機能とオブジェクトあります。
なぜコード出力の違いがありますか?
ありがとうございます!
以下のようなJavaScriptコード:関数出力対象ではない関数型内のJavaScript typeof演算(本)
function aa(){
console.log(typeof(this))
}
console.log(typeof(aa))
aa()
出力は、このコードを実行した後機能とオブジェクトあります。
なぜコード出力の違いがありますか?
ありがとうございます!
コンテキストを渡さずに呼び出された関数の実行中にthis
は、ブラウザのグローバルwindow
オブジェクトにバインドされます。
this
は、明示的にcall
またはapply
でそれを渡さない限り、決して関数オブジェクト自体ではありません。
function f(){console.log(typeof this);}
f.call(f);
の出力は、function
であろう。
「aa」と「this」は異なる値を意味するため、そのうちの1つは関数ではありません。 'これがどのように動作するのか知りたい場合は、https://github.com/getify/You-Dont-Know-JS/blob/master/this%20%26%20object%20prototypes/ch1.mdを読むことをお勧めします。また、 'typeof'は関数ではなく演算子なので、' typeof aa'と書かなければなりません。 –
こちらをご覧くださいhttps://stackoverflow.com/questions/1963357/this-inside-function – Alexis
返信いただきありがとうございますが、node.jsで実行するのはどうですか?これは「これ」を指す? – suoyong