2015-10-16 14 views
9

Voglio creare una classe all'interno del mio script.Come dichiarare una classe personalizzata negli script di google?

lingua di Google Apps Script è basata su JavaScript, così ho preso un esempio tratto da un manuale di JavaScript:

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

Tuttavia, questo non funziona. Viene visualizzato questo messaggio di errore:

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

Significa che non è possibile creare nuove classi negli script di Google?

Oppure c'è una sintassi diversa che dovrei usare?

risposta

15

Storicamente Javascript è un linguaggio "senza classi", le classi sono una funzionalità più recente che non è stata ancora ampiamente adottata, e apparentemente non sono ancora supportate da Apps Script.

Ecco un esempio di come si può imitare il comportamento di classe in 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

Poi come sulla JSDoc per questo caso? Non riesco a far funzionare il completamento automatico per le classi definite in questo metodo. Qualche idea di come farlo? –

+0

Quando si fa riferimento alla classe definita in questo metodo come Libreria nello script apps, l'errore dice "ReferenceError: 'ClassName' non è definito", in questo caso: "Polygon" non è definito. C'è qualcosa che non va? –

+3

** AGGIORNAMENTO: ** Funziona ora. Quando si fa riferimento alla classe tramite la libreria Apps Script, deve essere 'var x = new LibraryName.ClassName();' –

Problemi correlati