Jon*_*nah 19 javascript ecmascript-6
我正在使用旧的(函数和原型)hacky JavaScript类到新的ES6类.
我可能做了一些愚蠢的事情,但我不确定为什么我不允许这样做:
class Player{
constructor(playerNo){
this.playerNo = playerNo;
}
get playerNo(){
return this.playerNo;
}
set cards(playersCards){
this.cards = playersCards;
}
get cards(){
return this.cards;
}
}
var steve = new Player(1);
Run Code Online (Sandbox Code Playgroud)
它给了我错误: Uncaught TypeError: Cannot set property playerNo of # which has only a getter on line 4
所以,我尝试了以下内容:
class Player{
constructor(playerNo){
this.playerNo = playerNo;
}
set playerNo(no){
this.playerNo = no;
}
get playerNo(){
return this.playerNo;
}
set cards(playersCards){
this.cards = playersCards;
}
get cards(){
return this.cards;
}
}
var steve = new Player(1);
Run Code Online (Sandbox Code Playgroud)
这给了我:( Uncaught RangeError: Maximum call stack size exceeded on line 6这是线this.playerNo = no;).
有任何想法吗?
Mar*_*erg 21
你有设置的递归playerNo.
在playerNo设置器中,尝试设置this._playerNo = 0.
在其余代码中,继续区分setter方法的名称和存储数据的内部属性.
| 归档时间: |
|
| 查看次数: |
22207 次 |
| 最近记录: |