我有这样的声明。let Polygon = class{ constructor(){ //stuff } draw(){ //more stuff }}我想这样扩展这个类:class Board extends Polygon{ constructor(){ //stuff }}但我也想将它存储为像 Polygon 这样的变量。使用这个:let Board = class extends Polygon{}展开片段不起作用。如何像使用 Polygon 那样存储它?
1 回答
![?](http://img1.sycdn.imooc.com/5458502c00012d4a02200220-100-100.jpg)
慕桂英546537
TA贡献1848条经验 获得超10个赞
它工作得很好(但请继续阅读):
let Polygon = class{
constructor(){
//stuff
}
draw(){
//more stuff
}
};
let Board = class extends Polygon {
};
console.log(typeof Board);
...但请注意
let Board = class extends Polygon {
};
和
class Board extends Polygon {
}
做完全一样的事情。他俩:
Board
在进入上述发生的范围时,使用现代标识符范围和语义(例如,使用时间死区等)创建在当前执行上下文中调用的可变变量。let
、const
和class
都使用现代标识符语义。(var
使用遗留范围和语义。)当在代码的逐步执行中达到该语句/声明时,使用由构造函数创建的
class
构造函数初始化该变量Board
。
(相反,const Board = class extends Polygon { };
使标识符绑定不可变。)
添加回答
举报
0/150
提交
取消