Javascript 这个.x是不可编辑的
我试图将一个变量传递给一个对象中的一个方法,但我一直得到这样一个错误:短语不可编辑 我使用两个对象,并将变量从一个对象传递到另一个对象 短语类Javascript 这个.x是不可编辑的,javascript,debugging,iterator,Javascript,Debugging,Iterator,我试图将一个变量传递给一个对象中的一个方法,但我一直得到这样一个错误:短语不可编辑 我使用两个对象,并将变量从一个对象传递到另一个对象 短语类 console.clear() 类短语{ 构造器(短语){ log(“短语构造函数”) 这个短语=短语; } addPhraseToDisplay(){ log(“短语addPhraseToDisplay”) 让arr=[…这个短语]; arr.forEach(字母=>{ 设li=$(`${letter}`); 如果(字母!=''){ li.addCl
console.clear()
类短语{
构造器(短语){
log(“短语构造函数”)
这个短语=短语;
}
addPhraseToDisplay(){
log(“短语addPhraseToDisplay”)
让arr=[…这个短语];
arr.forEach(字母=>{
设li=$(`${letter} `);
如果(字母!=''){
li.addClass(`hide letter${letter}`);
$('短语ul')。附加(li);
}否则{
设li=$(`${letter} `);
li.addClass(“隐藏空间”);
$('短语ul')。附加(li);
}
回信;
});
}
}
班级游戏{
构造函数(){
log(“游戏构造函数”)
这个值=0;
//直接将短语放入构造函数中
this.phrases=[新短语(“hello world”),
新词语(“华尔街上的狼”),
新词语(“尽管作出”),
新短语(“Karen带走了孩子”),
新短语(“好吧,就要出发了”)
];
this.activePhrase=null;
}
getRandomPhase(){
log(“Game getrandomPhase()”)
//返回5个随机短语
返回此.phrases[Math.floor(Math.random()*this.phrases.length)];
}
startGame(){
控制台日志(“游戏开始名”)
让hid=document.getElementById('overlay');
hid.style.display=“无”;
设phrs=this.getRandomPhase();
设stor=新短语(phrs);
stor.addPhraseToDisplay();
}
}
g=新游戏()
g、 startName()
您的错误是,您使用此
let stor = new Phrase(phrs);
摆脱这个,它就会起作用
console.clear()
类短语{
构造器(短语){
log(“短语构造函数”)
这个短语=短语;
}
addPhraseToDisplay(){
log(“短语addPhraseToDisplay”)
让arr=[…这个短语];
arr.forEach(字母=>{
设li=$(`${letter} `);
如果(字母!=''){
li.addClass(`hide letter${letter}`);
$('短语ul')。附加(li);
}否则{
设li=$(`${letter} `);
li.addClass(“隐藏空间”);
$('短语ul')。附加(li);
}
回信;
});
}
}
班级游戏{
构造函数(){
log(“游戏构造函数”)
这个值=0;
//直接将短语放入构造函数中
this.phrases=[新短语(“hello world”),
新词语(“华尔街上的狼”),
新词语(“尽管作出”),
新短语(“Karen带走了孩子”),
新短语(“好吧,就要出发了”)
];
this.activePhrase=null;
}
getRandomPhase(){
log(“Game getrandomPhase()”)
//返回5个随机短语
返回此.phrases[Math.floor(Math.random()*this.phrases.length)];
}
startGame(){
控制台日志(“游戏开始名”)
让hid=document.getElementById('overlay');
hid.style.display=“无”;
设phrs=this.getRandomPhase();
//设stor=新短语(phrs);
phrs.addPhraseToDisplay();
}
}
g=新游戏()
g、 startName()
这里有另一种解决方法。由于以下几行,您得到了错误:
let phrs = this.getRandomPhrase(); // phrs is an instance of Phrase
let stor = new Phrase(phrs); // stor is new Phrase(new Phrase(...))
stor.addPhraseToDisplay();
按照代码的方式,phrs
已经是短语的一个实例。因此,您将stor
声明为新短语(新短语(/*some string*/)
。该错误是由于在短语
构造函数的输入上使用扩展语法而导致的。当输入是字符串
时,这可以正常工作,但在短语
的实例上使用扩展语法,这是不可编辑的;e、 例如,[…新短语('abc')]
只需从this.phrases
中删除短语
构造函数调用,并将其作为字符串数组实现;然后将不再触发该错误:
console.clear()
类短语{
构造器(短语){
log(“短语构造函数”)
这个短语=短语;
}
addPhraseToDisplay(){
log(“短语addPhraseToDisplay”)
让arr=[…这个短语];
arr.forEach(字母=>{
设li=$(`${letter} `);
如果(字母!=''){
li.addClass(`hide letter${letter}`);
$('短语ul')。附加(li);
}否则{
设li=$(`${letter} `);
li.addClass(“隐藏空间”);
$('短语ul')。附加(li);
}
回信;
});
}
}
班级游戏{
构造函数(){
log(“游戏构造函数”)
这个值=0;
//直接将短语放入构造函数中
这个短语=[
“你好,世界”,
“华尔街的狼”,
“尽管制造了”,
“凯伦带走了孩子”,
“好的,我要出发了”
];
this.activePhrase=null;
}
getRandomPhase(){
log(“Game getrandomPhase()”)
//返回5个随机短语
返回此.phrases[Math.floor(Math.random()*this.phrases.length)];
}
startGame(){
控制台日志(“游戏开始名”)
让hid=document.getElementById('overlay');
hid.style.display=“无”;
设phrs=this.getRandomPhase();
设stor=新短语(phrs);
stor.addPhraseToDisplay();
}
}
g=新游戏()
g、 startName()
您如何调用这些类?大概这是因为startGame
中的phrs
是一个对象,然后您尝试使用[…这个短语]
来传播它…