В этом упрощенном фрагменте кода я передаю объект, содержащий два свойства, функции normalize
.
function normalize() {
console.log(this.coords.map(n => n / this.length));
}
normalize({coords: [0, 2, 3], length: 5});
// OUTPUT: Uncaught TypeError: Cannot read property 'map' of undefined
Выдает ошибку типа.
С другой стороны, не передает объект в вызывающую функцию, она работает:
function normalize() {
console.log(obj.coords.map(n => n / obj.length));
}
obj = {
coords: [0, 2, 3],
length: 5
}
normalize();
// OUTPUT: [0, 0.4, 0.6]
Per MDN map()
для правильного выполнения требуется вызывающий массив, и coords
, по-видимому, правильно передается (как массив) в обоих примерах.
Почему это происходит? Что не так в первом фрагменте кода?