【JavaScript】forEach内のthisを指定する
JavaScriptで配列を操作する際によく使用する、forEachです。
forEachの中でthisを参照すると、undefinedとなってしまいました。
どうやら、forEachの引数で指定しなければいけないようですね。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
引数で指定しない場合はundefinedとなるようです。
1 2 3 4 5 6 7 8 9 10 11 12 |
let tmpArray; tmpArray = new Array(); tmpArray.push('aaa'); tmpArray.push('bbb'); tmpArray.push('ccc'); // thisを参照する tmpArray.forEach(function(val, index, arr){ console.log(this); // undefined }); |
引数で指定する場合、コールバック関数の次の引数に設定するようです。
1 2 3 4 5 6 7 8 9 10 11 12 |
let tmpArray; tmpArray = new Array(); tmpArray.push('aaa'); tmpArray.push('bbb'); tmpArray.push('ccc'); // thisを参照する tmpArray.forEach(function(val, index, arr){ console.log(arr[index] == this[index]); // true }, tmpArray); |
thisに拘らなければ、こうする人も多いかもしれませんね。
1 2 3 4 5 6 7 8 9 10 11 12 |
var tmpArray; tmpArray = new Array(); tmpArray.push('aaa'); tmpArray.push('bbb'); tmpArray.push('ccc'); // thisを参照する tmpArray.forEach(function(val, index, arr){ console.log(arr[index] == tmpArray[index]); // true }); |
No comments.