2015-10-16 6 views
9

मैं अपनी स्क्रिप्ट के अंदर एक कक्षा बनाना चाहता हूं।Google स्क्रिप्ट में कस्टम क्लास कैसे घोषित करें?

Google Apps स्क्रिप्ट भाषा javaScript पर आधारित है, इसलिए मैं एक जावास्क्रिप्ट पुस्तिका से एक उदाहरण ले लिया:

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

बहरहाल, यह काम नहीं करता। मुझे यह त्रुटि संदेश मिलता है:

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

क्या इसका मतलब है कि Google स्क्रिप्ट में नई कक्षाएं बनाना संभव नहीं है?

या क्या कोई अलग वाक्यविन्यास है जिसका उपयोग मुझे करना है?

उत्तर

15

ऐतिहासिक रूप से जावास्क्रिप्ट एक "वर्गीकृत" भाषा है, कक्षाएं एक नई सुविधा हैं जिन्हें अभी तक व्यापक रूप से अपनाया नहीं गया है, और स्पष्ट रूप से अभी तक ऐप्स स्क्रिप्ट द्वारा समर्थित नहीं हैं।

का तरीका यहां बताया 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

फिर कैसे इस मामले के लिए JSDoc के बारे में? मैं इस विधि में परिभाषित कक्षाओं के लिए स्वत: पूर्ण काम नहीं कर सकता। कोई विचार यह कैसे करना है? –

+0

ऐप्स स्क्रिप्ट में लाइब्रेरी के रूप में इस विधि में परिभाषित कक्षा का संदर्भ देते समय, त्रुटि कहती है "संदर्भ त्रुटि: 'कक्षा नाम' परिभाषित नहीं किया गया है", इस मामले में: "बहुभुज" परिभाषित नहीं किया गया है। कुछ भी संभवतः गलत है? –

+3

** अद्यतन: ** यह अब काम करता है। ऐप्स स्क्रिप्ट लाइब्रेरी के माध्यम से कक्षा का संदर्भ देते समय, इसे 'var x = new libraryName.ClassName(); ' –

संबंधित मुद्दे