Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.06.2015, 11:14
Кандидат Javascript-наук
Отправить личное сообщение для Casufi Посмотреть профиль Найти все сообщения от Casufi
 
Регистрация: 05.02.2010
Сообщений: 109

Присвоение метода объекта функции
Вот пример
http://dojo.telerik.com/@casufi/itAte
Не могу понять как работает кусок кода function onChange(e)
Почему как только я присваиваю метод переменной, она теряет область видимости ?
Кусок кода
var handler = e.sender.text;
handler("changed2");
Не работает.
Можно ли метод объекта и сам объект передать функции в качестве входящих параметров и выполнить метод в контексте объекта ?
Ответить с цитированием
  #2 (permalink)  
Старый 24.06.2015, 11:26
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Casufi
Можно ли метод объекта и сам объект передать функции в качестве входящих параметров и выполнить метод в контексте объекта ?
Метод не передашь.
А вот ссылку на объект - запросто!
var obj={
	name: 'Вася',
	method: function(){
		alert(this.name);
	}
};
test(obj);
function test(Obj){
	Obj.method();
};
Ответить с цитированием
  #3 (permalink)  
Старый 24.06.2015, 11:30
Кандидат Javascript-наук
Отправить личное сообщение для Casufi Посмотреть профиль Найти все сообщения от Casufi
 
Регистрация: 05.02.2010
Сообщений: 109

Проблема в том, что в функции я не знаю какой метод у объекта я должен выполнить, мне нужно каким то образом в функцию передать 1 - сам обхект 2 - какой метод выполнить.
Ответить с цитированием
  #4 (permalink)  
Старый 24.06.2015, 11:35
Кандидат Javascript-наук
Отправить личное сообщение для Casufi Посмотреть профиль Найти все сообщения от Casufi
 
Регистрация: 05.02.2010
Сообщений: 109

Вроде нашел https://learn.javascript.ru/bind
Ответить с цитированием
  #5 (permalink)  
Старый 24.06.2015, 11:56
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Casufi
я не знаю какой метод у объекта я должен выполнить, мне нужно каким то образом в функцию передать 1 - сам обхект 2 - какой метод выполнить
Дык!

var obj={
	name: 'Вася',
	method: function(){
		alert(this.name);
	}
};
test(obj,'method');
function test(Obj,Method){
	Obj[Method]();
};
Ответить с цитированием
  #6 (permalink)  
Старый 24.06.2015, 12:30
Кандидат Javascript-наук
Отправить личное сообщение для Casufi Посмотреть профиль Найти все сообщения от Casufi
 
Регистрация: 05.02.2010
Сообщений: 109

Сообщение от ksa Посмотреть сообщение
Дык!

var obj={
	name: 'Вася',
	method: function(){
		alert(this.name);
	}
};
test(obj,'method');
function test(Obj,Method){
	Obj[Method]();
};
Или так, тогда передавать можно только метод
var execmethod = function(method){
    method();
}
var obj={
	name: 'Вася',
	method: function(){
		alert(this.name);
	}
};

execmethod(function(){obj.method()});

Последний раз редактировалось Casufi, 24.06.2015 в 12:38.
Ответить с цитированием
  #7 (permalink)  
Старый 24.06.2015, 12:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Casufi,

var obj={
	name: 'Вася',
	method: function(){
		alert(this.name);
	}
};
test(obj.method.bind(obj));
function test(Method){
	Method();
};
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов функции, находящий внутри метода pro_xaoc Библиотеки/Тулкиты/Фреймворки 4 01.03.2014 09:27
присвоение функции $ объекту windows amt35 Общие вопросы Javascript 3 08.10.2013 17:26
вызов ф-ции обработчика как метода объекта FanAizu Общие вопросы Javascript 5 23.08.2013 15:52
Событие внутри функции или объекта shaltay Общие вопросы Javascript 2 27.06.2013 18:05
Добавление метода к функции YISHIMITSY Общие вопросы Javascript 2 17.02.2010 12:49