Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   передача this. (https://javascript.ru/forum/misc/53192-peredacha.html)

caetus 24.01.2015 16:22

ну ES6 это конфетка , только я пишу на ES5 (((

Erolast 24.01.2015 16:24

Многое теряешь.
http://6to5.org/

Octane 24.01.2015 16:34

caetus, that, _this, self, scope и т.д. – плохие названия.
Что мешает дать ссылке на this нормальное имя, такое, как если бы это была внешняя ссылка?
function Model() {}

Model.prototype.fetch = function () {
    var model = this;
    …
    xhr.onload = function () {
        …
        model.data = JSON.parse(xhr.responseText);
        …
    };
};


function View() {}

View.prototype.render = function (root) {
    var view = this;
    …
    window.requestAnimationFrame(function () {
        var html = view.template(view.model.data);
        root.insertAdjacentHTML('beforeend', html);
    });
};
that годится только для абстрактных примеров. Со всеми этими .call(this)/.bind(this) рефакторинг превратится в ад, когда тебе очередную часть кода нужно будет сделать асинхронной. Гоняться за миллисекундами стоит, если у тебя этот код выполняется действительно много раз, как в синтетических тестах.

Цитата:

Сообщение от Erolast
Многое теряешь.
http://6to5.org/

В идеальном мире все проекты, с которыми сталкиваешься, начинаешь писать сам, и все коллеги знают ES6, жаль мы не в таком мире.


Часовой пояс GMT +3, время: 22:53.