JavaScript中如何调用数组内定义的匿名函数?
问题解决:数组中匿名函数无法执行的原因与修复方案
嘿,这问题其实挺常见的——你现在写的Array[0]只是拿到了这个函数的引用,并没有真正触发它执行。就好比你手里攥着一个遥控器,但没按开机键,设备当然不会启动啦😎
正确的调用方式
要执行数组里的这个匿名函数,你只需要在后面加上一对括号()就行,也就是写成:
Array[0]();
为什么console.log(Array[0])能正常显示?
当你用console.log打印它时,浏览器控制台只是把这个函数的定义内容展示出来,这和执行函数完全是两回事。就像你打印了一份菜谱,不代表你已经把菜做出来了~
修正后的完整代码示例
另外提个小建议:Array是JavaScript的内置构造函数名,用它当变量名容易引发潜在问题,我帮你改成了myArray,你可以参考:
function translate1() { var ctx = canvas.getContext("2d"); var myArray = [ function() {ctx.fillRect(10, 10, 15, 5)} ]; console.log(myArray[0]); // 此处正常显示函数定义 myArray[0](); // 这里会执行绘制矩形的函数 ctx.transform(1, 0, 0, 1, 0, 20); // 后续如果还有数组里的函数,都用`数组索引()`的方式调用即可 }
内容的提问来源于stack exchange,提问作者idksoiputthis
相关产品推荐
相关产品推荐

