猿问

ES6一个警告问题

报警告,但是不影响程序
es6.js:39 Uncaught TypeError: this.getRand is not iterable (cannot read property Symbol(Symbol.iterator))

代码如下
class RegCode{

constructor(data){
    console.log("传入数据")
    console.log(data)    this.data=data
    this.canvas=null;    this.context=null;
}
draw(dom,callback=function(){}){
    ...    this.arc()
}
arc(){    for(let i=0;i<this.data.dotNum;i++){        // 随机获取圆心
        let x=this.getRand(0,this.canvas.width)
        let y=this.getRand(0,this.canvas.height)        this.context.beginPath();        // 指定圆周路径
        this.context.arc(x,y,this.data.dotR,Math.PI*2,false)        this.context.closePath();
        let colors=this.getColor(this.backgroundColor);        this.context.fillStyle=`rgba(${colors[0]}, ${colors[1]}, ${colors[2]}, 0.8)`        this.context.fill()
    }
}// 公用方法getColor(arr){
    let colors=new Array(3).fill("")
    colors=colors.map(r=>this.getRand(...arr))    return colors
}
getRand(...arr){
    console.log(arr)
    arr.sort((a,b)=>a-b);    return Math.floor(Math.random()*(arr[1]-arr[0]+arr[0]))
}

}

请教,这个问题怎么解决


汪汪一只猫
浏览 2411回答 2
2回答

繁花如伊

看报错的描述,结合你的代码里看,感觉你贴的代码不全。

莫回无

报错的大致可能情况是你把这个函数用在了for in、for of、spread([...getRand()])之类的地方。类似把返回值作为一个可迭代对象来使用导致的。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答