function catGenerate(){
var image = document.createElement('img');
var division = document.getElementById('flexID');
pic1 = 300;
image.src = "https://placekitten.com/200/" + String(pic1) ;
division.appendChild(image);
pic1++;
}
使用该功能后,我想将pic1值加1,怎么办?
答案 0 :(得分:0)
我不鼓励使用全局变量。这是一个经典的关闭示例,您的生成器函数应返回如下函数:
function catGenerator() {
// internal state
let pic1 = 300;
return function doSomething() {
var image = document.createElement('img');
var division = document.getElementById('flexID');
image.src = "https://placekitten.com/200/" + pic1;
division.appendChild(image);
pic1 += 1;
}
}
然后像这样使用它:
const generator = catGenerator();
generator(); // pic1 = 300
generator(); // pic1 = 301
... etc
这是一篇很好的博客文章,解释了其工作原理:https://medium.com/@prashantramnyc/javascript-closures-simplified-d0d23fa06ba4