Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вопрос о bind() (https://javascript.ru/forum/misc/35560-vopros-o-bind.html)

OctoberTide 14.02.2013 17:04

Вопрос о bind()
 
Здравствуйте!
Есть такой код:
function HttpServer(handlers) {
  this.handlers = handlers;
  this.server = http.createServer(this.handleRequest_.bind(this));
}

...

HttpServer.prototype.handleRequest_ = function(req, res) {
...
};

Я не могу понять в чем суть this.handleRequest_.bind(this). В методе handleRequest_ this и так будет ссылаться на объект в котором определен метод. Или я что-то не понимаю?

danik.js 14.02.2013 18:24

Цитата:

Сообщение от OctoberTide
В методе handleRequest_ this и так будет ссылаться на объект в котором определен метод

В javascript контекст исполнения функции не жесткий. this в методах указывает не на экземпляр объекта, на котором этот метод определен, а на заданный контекст. bind позволяет задать контекст исполнения функции.

var object = {
    fn: function(){
        alert(this);
    }
};

object.fn();
setTimeout(object.fn, 500);

nerv_ 14.02.2013 18:36

http://learn.javascript.ru/bind

OctoberTide 24.02.2013 18:57

Спасибо всем!


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