Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   onclick = object.method (https://javascript.ru/forum/misc/17124-onclick-%3D-object-method.html)

poorking 11.05.2011 10:24

this.secondMetodOfYourClass = function(){
	return 1;
}

//или
this.create = function(){
	//blah blah
	
	div.onclick = (function(yourClass){
		return function(){
			alert(yourClass.secondMetodOfYourClass());
	
		}
	}(this))
}

//или
var yourClass = this;
this.create = function(){
	//blah blah
	
	div.onclick = function(){
		alert(yourClass.secondMetodOfYourClass());
	}
}


Еще: если вы создаете класс, то скорее всего экземпляров его будет несколько, тогда наверно лучше сделать так? объявить методы в прототипе
function myClass(value){
  this.value = value;
}

myClass.prototype = {
 
 method: function(){
   return this.value;
 },
 create: function(){
  //blah blah
  var div = document.createElement("DIV");
 
  div.onclick = function(that){
    return function(){
       alert(that.method());
    }
  }(this)
  //...... blah blah
 }

}

Мне так больше нравится, получается что эти методы не определяются в каждом экземпляре, а они статичные, общие для всех экземпляров, методы, которые пользуются приватными переменными в конструкторе естественно

cmygeHm 11.05.2011 11:15

вот второй пример мне тоже более по душе. плюсь я маленько вник по этой статье.
спасибо :)


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