2011-04-23 11 views
14


me preguntaba qué significa prototipo en jQuery? normalmente encuentro infos sobre "Prototype" - el framework - pero aquí hay un "prototipo" dentro de jQuery ...? ¿Podría decirme cuándo es mejor usarlo?"prototype" en jQuery fn? + código javascript simple dentro de una función jquery?

Además, podría decirme: ¿por qué usamos un código "javascript simple" dentro de un complemento jQuery, en lugar del código jquery, como en este ejemplo? ¿es un problema de rapidez?

aquí está mi ejemplo: (un plugin para Twitter)

Gracias por sus respuestas!

$.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); 
    }); 
}; 

Respuesta

42

Me preguntaba qué "prototipo" significa en jQuery

La biblioteca de JavaScript llamado Prototipo toma su nombre de la JavaScript prototype. En JavaScript, el prototype es el mecanismo que proporciona la herencia (en oposición a, por ejemplo, las clases). Ejemplo: String.prototype se refiere al objeto prototype de String s, que contiene (entre otras cosas) métodos que pueden invocarse en cualquier String.

En el ejemplo de su pregunta, el plugin Twitter crea una nueva función en String.prototype, llamado makeLinks, que permite las llamadas a funciones tales como:

text.makeLinks() 

donde text es una cadena.

Más lectura en prototipos:


¿Por qué usamos un código "javascript simple" dentro de un complemento jQuery, en lugar del código jQuery?

jQuery no sustituye a JavaScript. Es una biblioteca de JavaScript, pensada para facilitar la escritura de JavaScript que de lo contrario tendría que usar la API de DOM. Usted ve el JavaScript "vainilla" en el plugin jQuery porque realmente no hay una mejor manera de hacer lo que hace JS.

jQuery es JavaScript. Simplifica la escritura de otros JavaScript al proporcionar una API más simple que se mantiene constante en todos los navegadores. Este no es el caso con el DOM, porque los diversos proveedores de navegadores han creado DOM APIs que son en su mayoría iguales, pero no idénticas.

Quirksmode es un sitio popular para documentar estas incoherencias (tanto en CSS como en JavaScript).


¡Bienvenido al desarrollo web!

+0

¡Bonito! muchas gracias, tiene sentido ahora – Paul

+0

+1 Me ayudó a mí también, gracias Matt! :-) – fiberOptics

11

Prototype es una funcionalidad de javascript pura.

Se utiliza para agregar propiedades o métodos a un objeto ya definido (algo así como extenderlo). Por ejemplo:

function myCustomObject(){ 
} 

myCustomObject.prototype.myCustomAttr = "Hello"; 

var instance = new myCustomObject(); 

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

http://jsfiddle.net/a2bEA/ –

Cuestiones relacionadas