function normalize() {
console.log(this.coords.map(function(x){
return x/this.length;
}));
}
normalize.call({coords: [0, 2, 3], length: 5});
预期产出:[0,0.4,0.6]
输出:[NaN,Infinity,Infinity]
有人可以解释错误吗?
答案 0 :(得分:2)
您需要使用this
以及与Array#map
映射的功能。如果没有thisArg
,则回调无法访问this
。
function normalize() {
return this.coords.map(function (x) {
return x/this.length;
}, this);
}
console.log(normalize.call({ coords: [0, 2, 3], length: 5 }));