ईएस 6 में सीधे कक्षा में गुणों को शुरू करना not possible है, केवल मी वर्तमान में इस तरीके से घोषित किया जा सकता है। ईएस 7 में भी वही नियम खड़े हैं।
हालांकि, यह एक प्रस्तावित विशेषता है जो ES7 (वर्तमान में चरण 3 में) के बाद आ सकती है। यहां official proposal है।
साथ ही, वाक्य रचना प्रस्ताव का सुझाव दे रहा है slightly different (=
बजाय :
) है:
class Point {
// Declare class property
a = 22
// Declare class static property
static b = 33
}
आप कोलाहल का उपयोग कर रहे हैं, तो आप चरण इस सुविधा को सक्षम करने के लिए 3 सेटिंग्स का उपयोग कर सकते हैं।
Here's a Babel REPL example
निर्माता के अलावा अन्य ES6 में ऐसा करने के लिए, दूसरी तरह, वर्ग परिभाषा के बाद यह करने के लिए है:
class Point {
// ...
}
// Declare class property
Point.prototype.a = 22;
// Declare class static property
Point.b = 33;
यहाँ इस विषय में एक good SO Thread डाइविंग है कुछ और
नहीं ते:
Bergi टिप्पणी में उल्लेख किया है, सुझाव वाक्य रचना के रूप में:
class Point {
// Declare class property
a = 22
}
बस वाक्यात्मक चीनी इस कोड के लिए एक शॉर्टकट प्रदान करना है:
class Point {
constructor() {
this.a = 22;
}
}
कहाँ उन दोनों बयान उदाहरण पर एक संपत्ति असाइन करते हैं।
var point = new Point();
p.a // 22
p.b // 33
लेकिन हो रही b
की आवश्यकता होगी ऊपर जा रहा:
class Point {
constructor() {
this.a = 22; // this becomes a property directly on the instance
}
}
Point.prototype.b = 33; // this becomes a property on the prototype
दोनों अभी भी एक उदाहरण के माध्यम से उपलब्ध होगा:
हालांकि, इस प्रोटोटाइप को बताए के रूप में बिल्कुल वैसा ही नहीं है प्रोटोटाइप चेन जबकि a
सीधे वस्तु पर उपलब्ध है।
मैं आपको लगता है 'स्थिर प्राप्त x() {वापसी 5 का उपयोग कर सकते हैं; } ', जो एक ही चीज करने के लिए समाप्त होता है, बल्कि शब्दशः। – somethinghere