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”;
可能出现什么问题,如何解决?
答案 0 :(得分:2)
您正在将字符串传递给setInterval
,这将要求所有引用的代码都在全局范围内(window
)。 translationMap
仅存在于window.load
的范围内。将translationMap
移到此方法之外。
function translationMap() {}
window.onload = function(){
}
此外,我建议不要为setInterval
使用字符串,而是实际传递函数:
setInterval(function () { translationMap() }, 100);
这也应该有效,并且比使用javascript使用eval
更好的解决方案。