2012-05-04 12 views
8

Próbuję utworzyć obiekt zakres dla ace.js redaktor mojego kodu, ale to nie działa. Zawodzi w sposób, którego nie potrafię rozgryźć. W the Ace documentation Ten konstruktor jest:Gdy próbuję utworzyć obiekt klasy w ace.js, „nielegalnym Konstruktor” zostanie zgłoszony błąd

new Range(Number startRow, 
      Number startColumn, 
      Number endRow, 
      Number endColumn) 

Ale gdy próbuję to w moim kodu:

new Range(0, 0, 0, 1) 

To powoduje błąd Uncaught TypeError: Illegal constructor. Co powoduje to zachowanie i dlaczego nie pasuje do dokumentacji?

Odpowiedz

14

Range to typ natywny to większość przeglądarek, których nie można utworzyć w instancji. Nie jestem zaznajomiony z Ace, ale zgaduję, że używają one jakiś przestrzeni nazw tak, że zrobisz coś new Ace.Range().

Edit: Wygląda na to, że używasz CommonJS, więc można importować metodę i alias to jednak lubisz:

var Range = require('ace/range').Range, 
    mine = new Range(0,0,10,0); 
+3

że było, tylko że ja 'm nie stosując CommonJS, więc rozwiązaniem było 'var Zakres = ace.require (' as/zakres"). Range' Dziękuję bardzo. –

1

Replace require('ace/range').Range z ace.require('ace/range').Range

Powiązane problemy