2013-04-28 5 views
0

Im, создающий небольшую библиотеку, которая поможет небольшим/большим функциям в моей библиотеке ... все работает нормально, но если я просто хочу вернуть объект, я хочу сделать это так _(".class"); так же, как один JQuery в ...Библиотека JavaScript, как вернуть, если никаких действий

Это базовый код для моей одной ...

var Test = function(elm){ 
       if(elm != undefined){ 
        Test.DOMSelection(elm); 
       } 


       return { 
        html:function(newHTML){ 
         return Test.html(newHTML); 
        } 
       }; 
      }; 

Как я могу проверить, если что-нибудь в конце после селектора, как _ («класс») .bla < - Это бла в конце ... как я могу проверить, есть ли там что-то там?

+0

Я чувствую недостаток навыков программирования на низком уровне. Несколько месяцев с Pascal могли сэкономить вам несколько лет на StackOverflow. –

ответ

4

Короткий ответ: невозможно.

Можно использовать только предыдущие вычисления (функциональные входы и текущее состояние), а не дальнейшие вычисления в цепочке, которые еще не произошли. (JavaScript не имеет представления об открытых «деревьях выражений», хотя «шаблон построителя» может достичь аналогичных результатов с гораздо более подробным синтаксисом.)

Если bla является функцией (и называется как таковой) или свойством-геттером, и соответствующая логика добавляется к функции (или геттеру), затем эта логика может вызывать , когдаbla оценивается, послеclass отделки.


jQuery использует метод chaining; каждый метод jQuery, который может быть привязан, возвращает объект new jQuery. Тем не менее, jQuery никогда не смотрит в будущее - что невозможно в JavaScript - в отношении того, что будет называться далее. Рассмотрим это:

// Find *all* DIVs on the page 
x1 = $('div'); 
// and for all the DIVs *previously found*, which are accessible by x1, 
// find the one that has a given class 
x2 = x1.filter('.foo'); 

Обратите внимание, что оба x1 и x2 имя различные объекты JQuery. Элементы в x1 были получены путем применения входов (форма html и селектор), в то время как элементы из x2 были найдены путем применения входов (элементов в x1 и селектора) для получения вывода (согласованные элементы в х2).

+0

Как это сделать jQuery? как будто вы просто переходите в $ (". class"). Он просто возвращает объект и ничего больше ... – ryanc1256

+3

@ ryanc1256 $ (..) возвращает * новый * объект jQuery или «набор элементов». Дополнительные jQuery * методы * могут быть вызваны на него, чтобы расширить/уточнить или обработать данный «набор элементов». Однако jQuery не «смотрит в будущее». Каждый метод jQuery выполняется на входе (существующие аргументы состояния и функции) и возвращает некоторый вывод. – user2246674

+0

Итак, как вы реализуете это в JavaScript, это довольно сложно? – ryanc1256

Смежные вопросы