Решил начать пользоваться объектами в 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();
})