Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> JS.Class biblioteka ułatwiająca tworzenie i rozszerzanie obiektów w JSie, http://code.google.com/p/jsclassextend/
deirathe
post
Post #1





Grupa: Zarejestrowani
Postów: 426
Pomógł: 32
Dołączył: 24.05.2007

Ostrzeżenie: (0%)
-----


http://code.google.com/p/jsclassextend/

Mała biblioteka do tworzenia i rozszerzania obiektów w JSie. Prosta klasa:


  1. var Sample = JS.Class({
  2. test : function () {
  3. }
  4. });



rozszerzanie:
  1. var ExtendedSample = Sample.extend({
  2. test2 : function () {
  3. }
  4. });


instancja:

  1. var obj = new ExtendedSample();


więcej przykładów na googlecodzie, zapraszam do komentów (IMG:style_emoticons/default/smile.gif)

Ten post edytował deirathe 11.01.2011, 22:34:05
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
deirathe
post
Post #2





Grupa: Zarejestrowani
Postów: 426
Pomógł: 32
Dołączył: 24.05.2007

Ostrzeżenie: (0%)
-----


Dzięki wielkie za tak wyczerpującą opinię. Słowo static to bardziej definicja constansów niż staticów, dlatego cieszę się że zwróciłeś mi na to uwagę. Co do extenda:
http://jsfiddle.net/lunereaper/BbRdB/18/
tu jest przykład jak to działa i jak dziala instanceof, mi zwracał true.

[JAVASCRIPT] pobierz, plaintext
  1. var cTest = function(){
  2. };
  3. cTest.prototype = {
  4. a: 2,
  5. b: 3
  6. };
  7.  
  8. //sample js class
  9. var TestClass = JS.Class({
  10. a: 9,
  11. methodA : function (param) {
  12. //method body
  13. }
  14. });
  15. var oTest = new cTest;
  16.  
  17. var cExtendedTestClass = TestClass.extend(oTest);
  18.  
  19. var oExtendedTestClass = new cExtendedTestClass();
  20. //true, true
  21. console.log([oExtendedTestClass instanceof cExtendedTestClass, oExtendedTestClass instanceof TestClass]);
[JAVASCRIPT] pobierz, plaintext


Co do Twojego przykładu- nie pomyślałem o takim użyciu tej biblioteki, ale taką funkcjonalność na pewno wprowadzę i za to spostrzeżenie jestem niezmiernie wdzięczny. Na razie jednak można rozszerzać klasy w sposób opisany w mini dokumentacji, czyli za pomocą JSON'a. Instanceof nie działa kiedy sprawdzasz go na swojej klasie, ponieważ do prototypu obiektu, który powstanie za pomocą zdefiniowanej klasy nie jest przypisywany prototyp wrzuconego obiektu a prototyp obiektu który rozszerzamy.

No i tak jak wspomniałeś JS jest nietypowy, dlatego też wszystkie atrybuty w klasie będące obiektami powinny być definiowane w "construct", aby uniknąć niemiłych niespodzianek.

Ten post edytował deirathe 12.01.2011, 01:37:25
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 02:47