window.onload = function(){
function translationMap(a,b){
ctx.translate(a,b);
}
function majMap(sens){
var cpt;
switch(sens){
case 1:
for(cpt=0;cpt<16;cpt++){
var horloge = setInterval('translationMap(0,2);' , 100);
}
clearInterval(horloge);
break;
case 2:
for(cpt=0;cpt<16;cpt++){
var horloge = setInterval('translationMap(0,-2);' , 100);
}
clearInterval(horloge);
break;
case 3:
for(cpt=0;cpt<16;cpt++){
var horloge = setInterval('translationMap(-2,0);' , 100);
}
clearInterval(horloge);
break;
case 4:
for(cpt=0;cpt<16;cpt++){
var horloge = setInterval("translationMap(2,0);" , 100);
}
clearInterval(horloge);
break;
}
}
}
但是当我执行majMap()时;它告诉我:
“未捕获的ReferenceError:未定义translationMap”;
可能出什么问题了,我该如何解决?
最佳答案
您正在将字符串传递给setInterval
,这将要求所有引用的代码都在全局范围内(window
)。 translationMap
仅存在于window.load
的范围内。将translationMap
移到此方法之外。
function translationMap() {}
window.onload = function(){
}
此外,我建议不要对
setInterval
使用字符串,而是实际传递一个函数:setInterval(function () { translationMap() }, 100);
与要求javascript使用
eval
相比,这也应该有效,并且是更好的解决方案。关于javascript - 函数给出错误translationMap未定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28950051/