测了一下,直接调dosomething(event)是没问题的,而且move(event)不可能调到,应该是hero.move(event)
(突然发现你这个是WASD的keyCode)
下面是代码
<body onkeydown=dosomething(event)>
<script>
function MyTank(x,y,direct){
this.x = x
this.move = function move(event){
console.log(event.keyCode+'被按下')
}
}
var hero =new MyTank(300, 300, 0)
function dosomething(event) {
if(event.keyCode==38|| event.keyCode==40 ||event.keyCode==37|| event.keyCode==39) {
hero.move(event)
}
}
</script>
//则所有子弹共享一个定时器.var timer=window.setInterval("heroBullets["+(heroBullets.length-1)+"].run()",50)
heroBullets这个你可以理解为一个数组,[]中是下标
不知道你明白不,写个简单例子给你看看吧:
var heroBullets = {
0:{
run: function(){
alert(this.timer)
},
timer: 10
},
1:{
run: function(){
alert(1)
},
timer: 20
}
}
heroBullets[0].timer = 30//这个是代表设置参数timer
heroBullets[0].run()//这个是代表调用其中的函数run