Reply to this topicStart new topicStart Poll

Мутный js для чайников

, Передать "классу" метод.
Bard
  Отправлено: Jul 25 2011, 07:14 AM
Quote Post


  Прапорщик
*

Группа: Members
Сообщений: 33
Пользователь №: 1127
Регистрация:
7-September 07



CODE

li.aj = {
  mhttp : "GET",
  params : "?msg=hello",
  url : "http://www.google.ru",
  xxx : function(){
     alert("hello");
  }
}


класс li будем считать обьявленным выше воображаемого кода.

задача, если метод xxx не указан, срабатывает метод xxx со стандартным кодом, если же указан, срабатывает указанный xxx.

а всё дело в том, что js такое объявление считает объявлением своиства а не метода.
PMEmail Poster
Top
Bard
Отправлено: Jul 25 2011, 08:48 AM
Quote Post


  Прапорщик
*

Группа: Members
Сообщений: 33
Пользователь №: 1127
Регистрация:
7-September 07



Всё оказалось очень просто.
Добавляем метод с помощью оператора "prototype", и определяем тип переменной в данном случае "function" с помощью typeof.

CODE

function qwe(){
   qwe.prototype.test = function(opt){
       if(typeof(opt.func) == "function")opt.func();
   }
}

var obj = new qwe();
obj.test({
   func: function(){
       alert('hello');
   }
})


Класс можно реализовать через with(); Но говорят что, цитирую:

QUOTE
Использование with с одной стороны наглядно, с другой - может скрывать ошибки программирования и соответствующий код плохо сжимается компрессорами.


Реализация с оператором with():
CODE

with(qwe = function(){}){
   prototype.test = function(opt){
       if(typeof(opt.func) == "function")opt.func();
   }
}


Всем спасибо все свободны, надеюсь кому-нибудь пригодится.
PMEmail Poster
Top

Topic Options Reply to this topicStart new topicStart Poll

 



[ Script Execution time: 0.0295 ]   [ 10 queries used ]   [ GZIP выключен ]