Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как обратиться к this внутри объекта (https://javascript.ru/forum/misc/16600-kak-obratitsya-k-vnutri-obekta.html)

De-Luxis 14.04.2011 10:58

Как обратиться к this внутри объекта
 
Есть такой код:
var call = {
	send : function (){
		var data = $('#dialog form').serialize()
		$.post('ajax.php',data,function(data){
			if (data['error'].length > 0)
			{
				message(data['error'])
			}
			else
			{
				if (data['message'].length > 0)
					message(data['message'])
				
				$('#dialog').dialog('close')
			}
		},'json')	
	},
	get_form : function (){		
		if ($('#dialog').length < 1)
		{
			$('body').append('<div id="dialog" ></div>');
		}

		$.post('ajax.php',{type:'get_cell_form'},function(data){	
		$('#dialog').html(data).dialog({
			modal:true,
			title:'Заказать звонок',
			buttons:{
				Отправить : function (){
					call.send()
				},
				Отменить : function (){$(this).dialog('close')}
			}
		})})
	}
}


На данный момент, там где кнопка отправить я обащяюсь к методу send напрямую через call.send()
Если поставлю this.send() то понятно выдаст ошибку.

Как правильно обратиться к методу send без создания новых переменных?

can3p 17.04.2011 22:18

Если хочется, чтобы в этой функции this указывал на объект call, то в новых браузерах можно использовать bind, а в старых этот bind реализовать. Но лучше так не делать - функция, которая отрабатывает нажатие по кнопке, не пренадлежит объекту call


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