Comments 12
function Loader()
{
this.load = function()
{
var $$ = this;
$.ajax({
url: '/test.php',
success: function(data, textStatus, jqXHR) {
console.log(this);
console.log($$):
}
});
}
}
(new Loader()).load();
можно так, хоть и не красиво
+2
В jQuery.ajax() можно передать параметр context, который будет контекстом для функций-обработчиков
+3
В случае AJAX прекрасно сработает добавление "context: this". В этом случае внутри метода «success» «this» — это и будет наш Loader.
+2
Если вы используете jQuery — то в ней уже есть спец. метод для этого — jQuery.proxy().
+4
Еще у Function есть нативный bind, но он поддерживается не во всех браузерах (по ссылке есть кроссбраузерное решение): developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/bind
var submit = $('').html('click me');
submit.bind('click', this.onClick.bind(this));
var submit = $('').html('click me');
submit.bind('click', this.onClick.bind(this));
+1
Конечно могу ошибаться, но вы написали свой bind? developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/bind
0
Есть библиотека underscore.js
В ней есть замечательная функция bind:
documentcloud.github.com/underscore/#bind
В ней есть замечательная функция bind:
documentcloud.github.com/underscore/#bind
0
Первые шаги в джаваскрипте. Открываем для себя бинд.
0
Помимо apply есть call, если просто передать this, то можно юзать гео и не будет мороки с массивами.
Но вообще тема избитая, и совершенно не имеет никакого дела к синхронности и асинхронности, ну никакого!
Ведь this подменяет не потому, что мы ajax запрос делаем, а потому, что такова реализации jquery. Так что не надо тапочки с анасами путать, то есть ajax, jquery и контекст. Хотите поговорить о вызове функций и конектесе это одно, ajax — другое, jquery третье.
Но вообще тема избитая, и совершенно не имеет никакого дела к синхронности и асинхронности, ну никакого!
Ведь this подменяет не потому, что мы ajax запрос делаем, а потому, что такова реализации jquery. Так что не надо тапочки с анасами путать, то есть ajax, jquery и контекст. Хотите поговорить о вызове функций и конектесе это одно, ajax — другое, jquery третье.
0
Sign up to leave a comment.
Асинхронные функции в Javascript и ключевое слово this