Есть еще вопрос! Почему в примере ниже (я нашел его на этом сайте) для метода
double bind используется, а для
sum - нет?
function Example(x, y){
this.x = x;
this.y = y;
};
Example.prototype.sum = function(){
return this.x + this.y;
};
Example.prototype.double = function(){
// Вместо for(var key in this) if(this.hasOwnProperty(key)) ...
Object.keys( this )
// Получаем массив, к которому и применяем новые методы
.forEach( function( key ){
// this "потерялся" бы, но...
this[ key ] = this[ key ] * 2;
// У функций тоже есть новое
}.bind(this) );
return this;
};
var example = new Example(3, 7);
alert( example.sum() );
example.double();
alert( example.sum() );