Сообщение от рони
|
denis_alekss,
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Тест</title>
</head>
<body>
<p id="result"></p>
<script>
const array1 = ['a', 'b', 'c'];
const array2 = ['d', 'e', 'f'];
const array3 = array1.concat(array2,5,7);
//Собсвенный цикл forEach
var each = function(arr, callback,thisArg) {
var i, length = arr.length;
for (i = 0; i < length; i = i + 1) {
callback.call(thisArg,arr[i], i, arr);
}
};
each(array3,function(rez,d){
result.innerHTML+= d + ' - ' + this[d] + '<br> '} , array3)
</script>
</body>
</html>
|
А если поменять
this[d] на array3[d] в строке:
result.innerHTML+= d + ' - ' + array3[d] + '<br> '},array3)
будет вывод такой же самый.
Я так понял thisArg дает просто ссылку на массив и все?
Но ведь к примеру такой код будет выводить все то же самое? Я изменил ниже.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Тест</title>
</head>
<body>
<p id="result"></p>
<script>
const array1 = ['a', 'b', 'c'];
const array2 = ['d', 'e', 'f'];
const array3 = array1.concat(array2,5,7);
//Собсвенный цикл forEach
var each = function(arr, callback) {
var i, length = arr.length;
for (i = 0; i < length; i = i + 1) {
callback(arr[i], i, arr);
}
};
each(array3,(rez,d,array3)=>{
result.innerHTML+= d + ' - ' + rez + '<br> ';} )
</script>
</body>
</html>
Зачем тогда всаживать thisArg ?