Javascript 函数参数。。。函数检查(对象){}

Javascript 函数参数。。。函数检查(对象){},javascript,html,function,parameters,Javascript,Html,Function,Parameters,我有一个名为collisioncheck的函数。现在,通过检查适用于播放器的变量,例如playerPosX,playerpelx,playerpasking,它可以完美地工作 我想做的是类似于碰撞检查(object),因此,假设我调用碰撞检查(player),它将使用playerPosX等检查上述变量。如果我调用碰撞检查(zombie),那么它将改为检查zombiePosX,等等 我怎么能这样做 如果你有任何问题,请问,因为我不是真的很善于解释这一点。。。 提前谢谢 我强烈建议您重构代码,以便

我有一个名为
collisioncheck
的函数。现在,通过检查适用于播放器的变量,例如
playerPosX
playerpelx
playerpasking
,它可以完美地工作

我想做的是类似于
碰撞检查(object)
,因此,假设我调用
碰撞检查(player)
,它将使用
playerPosX
等检查上述变量。如果我调用
碰撞检查(zombie)
,那么它将改为检查
zombiePosX
,等等

我怎么能这样做

如果你有任何问题,请问,因为我不是真的很善于解释这一点。。。
提前谢谢

我强烈建议您重构代码,以便

playerPosX
playerPosY
playerVelX
playerVelY
zombiePosX
zombiePosY
zombieVelX
zombieVelY
不要出现在您的代码中。相反,
zombie
player
应该是具有属性的对象,例如
velX
velY
posX
posY

然后,
collisionCheck
可以如下所示

function collisionCheck(object) {
    .... object.posX ...
}
通过检查这些对象的每个属性,将当前对象与附近所有其他玩家和僵尸进行比较

您确实不想走将变量名作为字符串处理的路线。本质上,属性可以为您实现这一点。

非常简单:

function collisioncheck(obj) {
  var posX = obj.posX;
  var velX = obj.velX;
  var maskIMG = obj.maskIMG;
}

// ...

var objectToCheck = {
  'posX' : playerPosX,
  'velX' : playerVelX,
  'maskIMG' : playermaskIMG
};

collisioncheck(objectToCheck);

这里有一个例子

   zombie = { 'posX' : 7,  'posY' : 95 };
   player = { 'posX' : 3,  'posY' : 95 };
   document.write(  zombie.posX );


    function CollisionCheck ( o1 , o2 )
    {

        if ( Math.abs(o1.posX - o2.posX) < 5 )
            {
                document.write ( 'Kaboom!!!' );              
            }        
    }        
    CollisionCheck ( zombie, player );
僵尸={'posX':7,'posY':95}; 玩家={'posX':3,'posY':95}; document.write(zombie.posX); 功能冲突检查(o1,o2) { if(数学绝对值(o1.posX-o2.posX)<5) { document.write('Kaboom!!!'); } } 碰撞检查(僵尸,玩家);
在您的情况下,是否有特殊原因不在每种类型中为字段指定相同的名称?e、 只要有
posX
velX
maskIMG
,不管它是
玩家
僵尸
还是别的什么?是的,这正是我要找的!如何创建具有属性的对象?比如玩家对象的语法是什么?Vlad的回答展示了如何创建具有属性的对象。为了更新这样的对象,您需要编写代码,例如
zombie.posX=4