Search
Write a publication
Pull to refresh

Comments 6

var self = this;

Это ужасно!
Почему так сложно научиться использовать bind?

secondObject.increment = function () 
{
    var incrementInternal = function () 
    {
        this.value++;
        console.log(this.value);
    }.bind(this)
    incrementInternal();
    // или по мере необходимости
    // incrementInternal.bind(this)();
}
Согласен, не самое элегантное решение, но довольно популярное.
Ребята, разрабатывающие knockoutjs, придерживаются того же мнения.
Плюс метод bind не работает в IE < 9, если мне не изменяет память.
Во-первых, потому что иногда возникает необходимость ссылаться как на this вложенного контекста, так и на this родительского. Одним bind тут не обойтись.
А во-вторых, потому что одна строчка var self = this; занимает на экране меньше места, чем 100500 строчек с вызовом bind.
Наконец, в-третьих, стандартный bind возвращает функцию, имеющую совершенно безликое строковое представление. Так, в консоли Хрома она выглядит как function () { [native code] }, что значительно затрудняет отладку.
Я извиняюсь, но… де ожидалось от статьи получить информацию о хоть каком-то «ходе конем» касательно this.

В итоге в статье есть только описание prototype и то в очень «легком» виде без объяснения и разъяснения…

Статья не имеет, на мой взгляд, никакой изюминки.
Спасибо за замечание, учту ошибки в будущих постах. Мне показалось, что «ход конем» касательно this будет уместным в данной статье, объясняя, каким образом можно передать ссылку на вызывающий объект в функцию, вызывающуюся в методе этого объекта.
UFO landed and left these words here
Sign up to leave a comment.

Articles