"прототип" в JQuery FN? + простой код JavaScript внутри функции JQuery? - PullRequest
14 голосов
/ 24 апреля 2011


Мне было интересно, что означает прототип в jQuery?Я обычно нахожу информацию о "Prototype" - фреймворке - но здесь это "prototype" внутри jQuery ...?Не могли бы вы сказать мне, когда это лучше всего использовать?

Кроме того, не могли бы вы сказать мне: почему мы используем код "обычный javascript" внутри плагина jQuery вместо кода jquery, как в этом примере?Это проблема с быстротой?

вот мой пример: (плагин для твиттера)

Спасибо за ваши ответы!

$.each(data, function(i, item) {  
    holder.append("<p>"+item.text.makeLinks()+"</p>");  
});  
//...further in the code  
String.prototype.makeLinks = function() {  
    return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/,   function(str) {  
        return str.link(str);  
    });  
};  

Ответы [ 2 ]

42 голосов
/ 24 апреля 2011

Мне было интересно, что означает «прототип» в jQuery

Библиотека JavaScript с именем Prototype берет свое имя от прототипа JavaScript .В JavaScript прототип - это механизм, который обеспечивает наследование (в отличие, скажем, от классов).Пример: String.prototype относится к prototype объекту String s, который содержит (среди прочего) методы, которые могут быть вызваны для любого String.

В примере в вашем вопросеПлагин Twitter создает новую функцию на String.prototype, которая называется makeLinks, которая позволяет выполнять такие вызовы функций, как:

text.makeLinks()

, где text - строка.

Подробнее о чтении напрототипы:


Почемумы используем код "обычный javascript" внутри плагина jQuery вместо кода jQuery?

jQuery не является заменой JavaScript.Это библиотека JavaScript, предназначенная для облегчения написания JavaScript , в котором иначе пришлось бы использовать DOM API. Вы видите «ванильный» JavaScript в плагине jQuery, потому что на самом деле нет лучшего способа сделать то, что этоJS делает.

jQuery - это JavaScript. Он упрощает написание другого JavaScript, предоставляя более простой API, который остается согласованным во всех браузерах.Это не относится к DOM, поскольку различные поставщики браузеров создали API DOM, которые в основном одинаковы, но не идентичны.

Quirksmode - это сайтпопулярно для документирования этих несоответствий (как в CSS, так и в JavaScript).


Добро пожаловать в веб-разработку!

11 голосов
/ 24 апреля 2011

Prototype - это чисто функциональность javascript.

Используется для добавления свойств или методов к уже определенному объекту (что-то вроде расширения). Например:

function myCustomObject(){
}

myCustomObject.prototype.myCustomAttr = "Hello";

var instance = new myCustomObject();

alert(instance.myCustomAttr); // alerts Hello
...