Как установить контекст 'this' для пользовательского объекта внутри функции? - PullRequest
1 голос
/ 26 марта 2011

Рассмотрим код, подобный следующему:

external_function = function() {
    $(this).something2();
}

$('.someclass').live('click', function() {

    $(this).something1();
    external_function(); // wrong way

});

Я могу добавить новый метод:

external_function = function() {
    $(this).something2();
}

$('.someclass').live('click', function() {

    $(this).something1();
    this.external_function = external_function;
    this.external_function(); // this will work

});

но мне кажется, что это накладные расходы. Есть ли идеальный и безопасный способ запуска external_function с пользовательским контекстом?

1 Ответ

2 голосов
/ 26 марта 2011

Вы должны прочитать о apply и call: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call

...