このコードを Chrome で実行すると、Uncaught TypeError: Cannot read property 'concat' of undefined が発生します
function _log()
{
'use strict'
[this].concat(Array.from(arguments)).forEach(
function (obj) { console.log(obj) }
)
}
_log('foo', 'bar');
なぜこれが起こっているのかわかりません。どの[this]
ように未定義にすることができますか? this
未定義だったとしても[this]
、配列であるべきですよね?
おもしろいことにuse strict
、関数から行を削除すると、エラーが消え、コードが期待どおりに動作し、関数のコンテキストと引数がそれぞれ新しい行に記録されます。
this
私が気付いていない厳密なモードでキーワードを使用することについて何か特別なことはありますか?
ありがとう。