2011-08-16 18 views

Respuesta

14

funciones son objetos en Javascript. Así que usted puede tener su función principal

var $ = function() { alert('wat'); } 

y luego extenderla

$.fadeTo = function() { alert('fadeto'); } 
+0

mhm, veo ... ¿Una clase Javascript no tiene la noción de métodos estáticos/dinámicos? – SBSTP

+1

@SBSTP: JavaScript no tiene clases en absoluto, es un lenguaje prototípico, no de clase. Tiene funciones de constructor. Las funciones de constructor crean objetos. –

+0

@TJ -tienes razón, actualizado – wesbos

9

Debido a que en JavaScript, las funciones son objetos que pueden tener propiedades:

function test() { ... } 

test.a = function() { ... }; 
test.a(); // totally valid 
+0

Ah, no me di cuenta de esto. Pregunta: En su ejemplo, puede 'test.a' definirse dentro de la declaración inicial' function test() {...} ', o debe' test.a' declararse por separado para poder acceder fuera de 'test () ' En otras palabras, ¿es posible definir la propiedad 'a' desde dentro de la declaración' test() {...} 'de tal manera que todavía se puede acceder desde fuera de' test() '? Parece que no puedo encontrar la respuesta en ningún otro lado. – Brandon

2

creo que el concepto de lo que es exactamente jQuery en términos de conceptos de código es bastante confuso. Me encontré con este enlace, lo que explica la Arquitectura jQuery de una manera muy simple y fácil: http://blog.mikecouturier.com/2010/02/beginning-with-jquery-solid-foundation_22.html

Así que, en resumen, $ es un alias para una función de JavaScript llamada 'jQuery', y los métodos invocados mediante el uso de una notación de puntos como $ .trim() son métodos estáticos en la función 'JavaScript' jQuery '. Tenga en cuenta que una función hereda de un objeto en JavaScript, por lo que una función es un objeto en JavaScript.

Cuestiones relacionadas