我试图创建一个构造函数,以便能够对其进行实例化以创建游戏板对象。该程序很简单,我只是向构造函数传递了行数,并且必须创建它们。
for循环不起作用,我不明白原因,定义了ySize变量。如果我删除该程序,程序将成功运行,并且创建该部分没有问题。for循环的问题是什么?
非常感谢您的宝贵时间
function AlgorithmType(ySize) {
this.ySize = ySize;
this.createBoard = function() {
let selector; let row
for(let i = 0; i ++; i <= this.ySize) {
debugger; // Debugger is not executed
selector = document.querySelector(".mainContainer")
row = document.createElement("section")
selector.appendChild(row)
}
}
}
let testBoard = new AlgorithmType(5)
testBoard.createBoard() //expected to create 5 rows
您的函数rebinds this
,这就是为什么this.ySize
未定义的原因。使用箭头函数访问this
词法范围(父范围):
function AlgorithmType(ySize) {
this.ySize = ySize;
this.createBoard = () => {
let selector; let row
for(let i = 0; i <= this.ySize; i++) {
debugger; // Debugger is not executed
selector = document.querySelector(".mainContainer")
row = document.createElement("section")
selector.appendChild(row)
}
}
}
旁注:正如@atomNULL所指出的,您的for
-loop语法也不正确。看到他的答案
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句