2015-05-10 3 views
3

Я нашел несколько кодов в проверке подключаемого модуля jquery. но я не понимаю, некоторые концепции diferences между переменной и функции: код:

$.validator = function(options,form){ 
    this.settings=$.extend(true,{},validator.defaults,options); 
    this.currentForm=form; 
    this.init(); 
} 

но валидатор не плагин, так как плагин JQuery должен определить $ .fn.validator. но это также не переменная, потому что $. перед ним.

Те, кто может объяснить это для меня ???

+0

Не могли бы вы предоставить нам ссылку на исходный источник. Есть много разных валидаторов плагинов jquery ... – zusatzstoff

+0

http://jqueryvalidation.org/ –

ответ

3

Они просто добавляют функцию как функцию функции $ (jQuery). Подобно тому, как сам jQuery добавляет $.extend и $.each и $.ajax, этот плагин-валидатор добавляет к нему $.validator. Он по-прежнему является плагином (вроде бы), просто он не определяет метод, который вы можете вызвать в jQuery экземплярах. Вы можете вызвать только одну глобальную версию.

Учитывая то, что делает эта функция, по-видимому ожидать называться через new, например:

var v = new $.validator(); 

Это действительно должно иметь капитал V, и это действительно должно защищаться от призыва непосредственно, как то, что он делает внутри действительно неправильно если это называется напрямую.

+0

но я нашел его в jquery.validate.js на сайте http://jqueryvalidation.org/. он хорошо работает –

+0

@ LêĐôn: Он явно ** также ** определяет метод плагина 'validate' в коде, который вы еще не указали, в дополнение к функции' validator', которую он добавляет в код, который вы указали. Я все еще думаю, что функция, которую вы цитировали, может использовать некоторое улучшение, они оставляют вещи широко открытыми для ужасных побочных эффектов, если они используются неправильно. –

+0

большое спасибо. мой английский не хорош –

3

Функция представляет собой часть данных.

переменная является то, что вы можете сохранить часть данных в.

Свойство на объекте является то, что еще можно сохранить часть данных в.


$ является переменной. Это значение является функцией jQuery.

$.validator является свойством функции jQuery. Код, который у вас есть, назначает ему функцию.

$.fn.validator было бы свойством объекта, хранящегося в объекте jQuery fn. Он также может иметь значение, хранящееся в нем, но не в вашем коде.

Свойства функции fn можно связать с объектом jQuery. т. е. с вашим существующим кодом, вы можете позвонить $.validator(), но если у вас есть $.fn.validator, тогда вы можете позвонить $("div").validator().

+0

спасибо Квентин, это хорошая работа –

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