สิ่งที่คุณทำได้มีดังนี้
การส่งออกconst
จากโมดูล ขึ้นอยู่กับกรณีการใช้งานของคุณคุณสามารถ:
export const constant1 = 33;
และนำเข้าจากโมดูลหากจำเป็น หรือสร้างจากแนวคิดวิธีการแบบคงที่ของคุณคุณสามารถประกาศstatic
get accessor :
const constant1 = 33,
constant2 = 2;
class Example {
static get constant1() {
return constant1;
}
static get constant2() {
return constant2;
}
}
ด้วยวิธีนี้คุณไม่จำเป็นต้องมีวงเล็บ:
const one = Example.constant1;
ตัวอย่าง Babel REPL
จากนั้นอย่างที่คุณพูดเนื่องจาก a class
เป็นเพียงแค่น้ำตาลในการสังเคราะห์สำหรับฟังก์ชันคุณสามารถเพิ่มคุณสมบัติที่ไม่สามารถเขียนได้ดังนี้:
class Example {
}
Object.defineProperty(Example, 'constant1', {
value: 33,
writable : false,
enumerable : true,
configurable : false
});
Example.constant1;
Example.constant1 = 15;
อาจเป็นการดีถ้าเราสามารถทำสิ่งต่างๆเช่น:
class Example {
static const constant1 = 33;
}
แต่น่าเสียดายที่ไวยากรณ์คุณสมบัติของคลาสนี้อยู่ในข้อเสนอ ES7 เท่านั้นและถึงแม้ว่ามันจะไม่อนุญาตให้เพิ่มconst
คุณสมบัติ