Изменения

ECMAScript и все-все-все

980 байтов добавлено, 15:30, 10 октября 2016
Нет описания правки
f = function() { return f.apply(obj, arguments); }
f(); // то же самое вручную
</source>
 
=== this и замыкания @@ ===
 
<source lang="javascript">
TreeGrid.prototype.method = (arg1, arg2) =>
{
// Так делать нельзя, this всегда = контексту, в котором описан метод (обычно window)
console.log(this);
};
 
TreeGrid.prototype.setListener = function()
{
// Так делать нельзя, this будет = контексту вызова (кликнутому HTML-элементу)
this.table.addEventListener('click', this.handleClick);
// И так тоже делать нельзя
this.table.addEventListener('click', function(event)
{
this.handleClick(event);
});
// А вот так можно (оп-па!)
this.table.addEventListener('click', (event) => this.handleClick(event));
// Ну и вот так тоже можно
var self = this;
this.table.addEventListener('click', function(event) { self.handleClick(event); });
};
</source>