Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.03.2017, 11:28
Интересующийся
Отправить личное сообщение для Rocombo Посмотреть профиль Найти все сообщения от Rocombo
 
Регистрация: 11.12.2014
Сообщений: 10

Обработчик кнопок в прототипе
Подскажите, что делать, и почему это не так.
Не понимаю, почему нельзя делать функцию внутри другой функции.
Constructor.prototype.addEvents = function () {
  var button = this.get('button');

  button.add EventListener('click', changeColor, false);

  function changeColor () {
    button.style.background = 'green';
  }
}


а если я changeColor вынесу за пределы - то уже у меня нет доступа к button, одни проблемы. и this туда никак не засовывается, ни с баиндом, ни с чем
Ответить с цитированием
  #2 (permalink)  
Старый 13.03.2017, 11:42
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Цитата:
Не понимаю, почему нельзя делать функцию внутри другой функции.
Не понимаешь, потому что это делать можно.
Ответить с цитированием
  #3 (permalink)  
Старый 13.03.2017, 11:50
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,210

Сообщение от Rocombo
почему нельзя делать функцию внутри другой функции
Это заблуждение...

Модернизированный пример из учебника
https://learn.javascript.ru/new-prototype
function Rabbit(name) {
	this.name = name;
}
Rabbit.prototype.test = function() {
	var str=this.name;
	alert(ext());
	function ext(){
		return str+' - Ok';
	}
}
var rabbit = new Rabbit("Rabbit");
rabbit.test();

функция создана и она работает...
Ответить с цитированием
  #4 (permalink)  
Старый 13.03.2017, 12:39
Интересующийся
Отправить личное сообщение для Rocombo Посмотреть профиль Найти все сообщения от Rocombo
 
Регистрация: 11.12.2014
Сообщений: 10

Спасибо!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработчик нескольких кнопок anton41k Общие вопросы Javascript 2 07.10.2014 19:05
Как заставить выполняться обработчик после всех имеющихся обработчиков данного элемен Анатолий Саратовцев jQuery 2 08.10.2012 18:49
Один обработчик для нескольких кнопок! frundik Элементы интерфейса 2 10.07.2012 15:30
Как снять обработчик с очередью FanAizu jQuery 0 11.02.2012 19:28
Как "обмануть" обработчик события? itPiligrim Events/DOM/Window 0 13.05.2010 22:55