构造函数内部的此循环有什么问题?[JS]

phortela1n

我试图创建一个构造函数,以便能够对其进行实例化以创建游戏板对象该程序很简单,我只是向构造函数传递了行数,并且必须创建它们。

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章