2012-03-13 18 views
5

Próbuję użyć rozciąga się na tablicy ..what należy umieścić w constructor..Here jest kodcoffeescript jak używać rozciąga się na tablicy

class List extends Array 
    constructor:()-> 
     super arguments 
     this 

list = new List("hello","world") 
alert list[0] 

nie wydaje się działać ..

+0

zrobić trochę Googling dla „tablicy javascript instacji”, to nie ma okresu pracy. –

Odpowiedz

-1

nie zostały przy użyciu coffeescript ostatnio, więc jest to tylko przypuszczenie, ale może coś takiego:

class List extends [].prototype 

może działać?

EDYCJA: Na komentarz "mu is too short", wydaje się, że problemem nie jest w ogóle skrypt związany z kawą. Ten powiązany wpis SO może być przydatny, ponieważ wybrana odpowiedź zapewnia dwa możliwe rozwiązania tego problemu: Is this a reasonable way to 'subclass' a javascript array?

5

Nie ma łatwego sposobu "dziedziczenia" z prototypu macierzy. należy użyć kompozycji, tj

class List 
     constructor:()-> 
      this.array = new Array(arguments); 
     getArray :()-> 
      this.array 


list = new List("hello","world") 
alert list.getArray()[0] 

lub można spędzić swój czas realizowane skomplikowanych rozwiązań, które zawodzą jak najszybciej starają się analizować tablicę lub uzyskać dostęp do jego wartość długości.

więcej w tej kwestii:

http://perfectionkills.com/how-ecmascript-5-still-does-not-allow-to-subclass-an-array/

Powiązane problemy