ZdraviiSmisl
@ZdraviiSmisl

Почему значение value дублируется в параметрах метода call?

В строке со звёздочкой, мне не понятно почему 2 параметра с именем value? Один как контекст,а 2й тогда?
По коду: создание Метода Object.prototype.each(func), который будет применять func к каждому свойству

Object.prototype.each = function(f) {

  for (var prop in this) {

    // пропускать свойства из прототипа
    if (!this.hasOwnProperty(prop)) continue;

    var value = this[prop];
    f.call(value, prop, value); //*

  }

};

// Теперь все будет в порядке
var obj = {
  name: 'Вася',
  age: 25
};

obj.each(function(prop, val) {
  alert( prop ); // name -> age
});
  • Вопрос задан
  • 59 просмотров
Пригласить эксперта
Ответы на вопрос 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
А второй как аргумент колбэка. Вы же его прямо при использовании указали:
obj.each(function(prop, val) { <-- val
  alert( prop ); // name -> age
});


В итоге можно будет использовать и this и val внутри колбэка - они будут указывать на одно и то же.
Зачем это сделано, нужно узнавать у автора этого кода, поскольку функция не из стандартов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
24 нояб. 2024, в 14:37
3000 руб./в час
24 нояб. 2024, в 13:04
500 руб./в час
24 нояб. 2024, в 12:29
3000 руб./за проект