2015-10-16 16 views
9

Chcę utworzyć klasę wewnątrz mojego skryptu.Jak zadeklarować niestandardową klasę w skryptach google?

język Google Apps Script jest oparty o JavaScript, więc wziąłem przykład z podręcznika javascript:

class Polygon { 
    constructor(height, width) { 
    this.height = height; 
    this.width = width; 
    } 
} 

Jednak to nie działa. Otrzymuję komunikat o błędzie:

Missing ; before statement. (line 1, file "Code") 

Czy to oznacza, że ​​nie można tworzyć nowych klas w skryptach google?

Czy istnieje inna składnia, której powinienem użyć?

Odpowiedz

15

Historycznie Javascript jest językiem "bezklasowym", zajęcia są nowszą wersją, która nie została jeszcze powszechnie przyjęta i najwyraźniej nie są jeszcze obsługiwane przez Apps Script.

Oto przykład, jak można naśladować zachowanie klasy w Apps Script:

var Polygon = function(height, width){ 
    this.height = height; 
    this.width = width; 

    this.logDimension = function(){ 
    Logger.log(this.height); 
    Logger.log(this.width); 
    } 
}; 

function testPoly(){ 
    var poly1 = new Polygon(1,2); 
    var poly2 = new Polygon(3,4); 

    Logger.log(poly1); 
    Logger.log(poly2); 
    poly2.logDimension(); 
} 
+0

Potem jak o JSDoc w tym przypadku? Nie mogę włączyć autouzupełniania dla klas zdefiniowanych w tej metodzie. Masz pomysł, jak to zrobić? –

+0

Podczas odwoływania się do klasy zdefiniowanej w tej metodzie jako Biblioteka w skryptach aplikacji, błąd mówi "ReferenceError:" ClassName "nie jest zdefiniowany", w tym przypadku: "Polygon" nie jest zdefiniowany. Coś może nie tak? –

+3

** AKTUALIZACJA: ** Działa teraz. Podczas tworzenia odwołania do klasy za pomocą biblioteki skryptów aplikacji musi to być 'var x = new LibraryName.ClassName();' –

Powiązane problemy