在ECMAScript 2015中引入的JavaScript classes主要是基于JavaScript的现有基于原型的继承的语法糖
允许在ECMAScript 2015类{}
括号中使用哪种代码 NOT ?私有变量,常量和函数可以在class
括号内声明吗?
e.g。
class Person{
constructor(n){ this.name = n;}
const HELLO = 'Hello!'; //is this allowed?
saySomething (m){ console.log(this.name + ' says ' + (m || HELLO)) }
}
答案 0 :(得分:1)
根据this article,基本类语法如下所示:
class MyClass {
constructor(...) {
// ...
}
method1(...) {}
method2(...) {}
get something(...) {}
set something(...) {}
static staticMethod(..) {}
// ...
}
提供的示例代码会在Chrome上引发Uncaught SyntaxError: Unexpected identifier
错误;私有const
或var
在class
声明中不允许。一种替代方法是使用IIFE(立即调用函数表达式):
Person = (function(){
const HELLO = 'Hello!';
class Person{
constructor(n){ this.name = n;}
saySomething (m){ console.log(this.name + ' says ' + (m || HELLO))
}
return Person;
})();
有关详细信息,请参阅ECMAScript 2015 classes规范。