Показать сообщение отдельно
  #1 (permalink)  
Старый 26.12.2014, 16:40
Кандидат Javascript-наук
Отправить личное сообщение для vuler Посмотреть профиль Найти все сообщения от vuler
 
Регистрация: 16.02.2012
Сообщений: 109

Вопрос по синтаксису в объектах
Решил начать пользоваться объектами в js, но хочется знать, корректный ли синтаксис использую.
Вот пример кода. Код в целом рабочий.
Тут зоздаю класс arr_gen в конструкторе запоминаю все DOM елементы с которыми буду работать и переменные. И запускаю обработчик событий например на клик по дереву.
Если срабатывает обработчик запускается метод Arr_gen.prototype.tree_sel_elem, а в нем вызваю другой метод Arr_gen.prototype.test того же класса.
Смущает следующее: в методе tree_sel_elem идет прямое обращение к tree_block не Arr_gen.tree_block или что-то подобное не получится ли конфликт имен, если будет еще одна переменная tree_block в методе?
Функция тест из метода запускается Arr_gen.prototype.test(); ее короче никак нельзя записать? или это такой синтаксис. И по записе Arr_gen.tree_se -тоже корректно?

function Arr_gen() {
	this.tree_block=$('#arr_gen_tree');
	this.last_id=this.tree_block.attr('last_id');
	shape_block=$('#arr_gen_shapes');
	this.shape_line=shape_block.find('.arr_gen_inp_line');
	this.shape_arr_but=shape_block.find('.arr_gen_arr_but');
	
	$("body").on('click','#arr_gen_tree .js_tree_folder', Arr_gen.prototype.tree_sel_elem);
	
} 

Arr_gen.prototype.test=function(){
	Arr_gen.tree_se.remove();
	alert('test');
}


Arr_gen.prototype.tree_sel_elem = function(){
	if ($(this).hasClass('selected')) return;
	Arr_gen.tree_se=$(this).closest('li');
	tree_block.find('.js_tree_folder.selected').removeClass('selected');
	$(this).addClass('selected');
	Arr_gen.prototype.test();
};

$(document).ready(function() {

var arr_gen=new Arr_gen();

})
Ответить с цитированием