Присвоение метода объекта функции
Вот пример
http://dojo.telerik.com/@casufi/itAte Не могу понять как работает кусок кода function onChange(e) Почему как только я присваиваю метод переменной, она теряет область видимости ? Кусок кода var handler = e.sender.text; handler("changed2"); Не работает. Можно ли метод объекта и сам объект передать функции в качестве входящих параметров и выполнить метод в контексте объекта ? |
Цитата:
А вот ссылку на объект - запросто!
var obj={
name: 'Вася',
method: function(){
alert(this.name);
}
};
test(obj);
function test(Obj){
Obj.method();
};
|
Проблема в том, что в функции я не знаю какой метод у объекта я должен выполнить, мне нужно каким то образом в функцию передать 1 - сам обхект 2 - какой метод выполнить.
|
Вроде нашел https://learn.javascript.ru/bind
|
Цитата:
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,
:blink:
var obj={
name: 'Вася',
method: function(){
alert(this.name);
}
};
test(obj.method.bind(obj));
function test(Method){
Method();
};
|
| Часовой пояс GMT +3, время: 14:56. |