2011-08-16 14 views

Odpowiedz

14

funkcje są obiekty w javascript. Więc można mieć swoją główną funkcją

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

a następnie rozszerzyć to

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

mhm, widzę ... Klasa JavaScript nie ma pojęcia metod statycznych/dynamicznych? – SBSTP

+1

@SBSTP: JavaScript w ogóle nie ma klas, jest to język prototypowy, a nie oparty na klasach. Ma funkcje konstruktora. Funkcje konstruktora tworzą obiekty. –

+0

@TJ - masz rację, zaktualizowano – wesbos

9

Ponieważ w JavaScript, funkcje są obiektami, które mogą mieć właściwości:

function test() { ... } 

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

Ah, nie zdawałem sobie z tego sprawy. Pytanie: W twoim przykładzie, czy 'test.a' może być zdefiniowane w początkowej deklaracji' function test() {...} ', lub musi 'test.a' być zadeklarowane oddzielnie, aby być dostępnym poza' testem () '? Innymi słowy, czy możliwe jest zdefiniowanie właściwości 'a' z deklaracji' test() {...} 'tak, aby była nadal dostępna spoza' test() '? Nie mogę znaleźć odpowiedzi nigdzie indziej. – Brandon

2

myślę pojęcie, co dokładnie jest jQuery pod względem koncepcji kod jest dość kłopotliwe. Przeszukałem ten link, co wyjaśnia jQuery Architecture w bardzo prosty i łatwy sposób: http://blog.mikecouturier.com/2010/02/beginning-with-jquery-solid-foundation_22.html

Krótko mówiąc, $ jest aliasem dla funkcji JavaScript o nazwie "jQuery", a metody wywoływane za pomocą notacji kropkowej podobnie jak $ .trim() to metody statyczne w funkcji jQuery 'JavaScript'. Zauważ, że funkcja dziedziczy z obiektu w JavaScript, więc funkcja jest obiektem w JavaScript.

Powiązane problemy