Вы должны вернуть массив:
Array.prototype.power = function(value) {
for (var i = 0; i < this.length; i++) {
this[i] = Math.pow(this[i], value);
}
return this;
}
var powers = [1,2,3].power(2); // [1, 4, 9]
Идущий в большей глубины в настоящее время, вы можете увидеть power
метод, указанный в качестве части массива при просмотре массива. Это один из problems with prototyping the Array.
Это не означает, что прототипирование массива не должно выполняться. Но понимая, что в качестве массива он будет по-прежнему действовать как массив, если вы использовали методы Array, чтобы запросить/повторить его.
Например, беря пример кода выше, я все еще могу получить правильную длину массива:
powers.length; // 3
powers.toString() // 1,4,9
И если я итерацию по ним с индексами, я могу получить точные показания:
for(var i = 0; i < powers.length; i++){
console.log(powers[i]);
}
// 1
// 4
// 9
Довольно просто: [1, 4, 9]
- это, безусловно, элементы массива, которые возвращаются при использовании метода power
выше.
Начать с я = 0 вместо я = 1 –
Ваш метод не возвращает 'false', он возвращает' undefined', который является правильным, как у вас нет 'return' где-нибудь в вашем методе. – meagar
1, был просто попыткой, если я изменил его на 0, и я верну его, это всегда false ... –