JavaScript:如何使用参数创建原型函数

JavaScript:如何使用参数创建原型函数,javascript,Javascript,这是我第一次在JavaScript中使用原型,我需要一些帮助 我有一门课 function snakegame(C, C_w, C_h, Ls, spd) { // .... bunch of other stuff ... this.boxCollision = function(A, B) { return A.x == B.x && A.y == B.y;

这是我第一次在JavaScript中使用原型,我需要一些帮助

我有一门课

    function snakegame(C, C_w, C_h, Ls, spd)
    {
           // .... bunch of other stuff ...

            this.boxCollision = function(A, B)
            {
                return A.x == B.x && A.y == B.y;
            }

           // ... bunch of other stuff here too ...

    }
我想原型化boxCollision函数,即在snakegame中定义它,然后在外部编写实现。我试过了

    function snakegame(C, C_w, C_h, Ls, spd)
    {
           // .... bunch of other stuff ...

            this.boxCollision(A, B);


           // ... bunch of other stuff here too ...

    }

    snakegame.prototype.boxCollision = function(A, B) 
    {
         return A.x == B.x && A.y == B.y;
    }
但那没用


我还试着为原型编写这个.boxCollisionvar,var,但也没有成功。正确的方法是什么?

您可能希望这样做:

var SnakeGame = function () {
  //Constructor code
};

SnakeGame.prototype = new Object(); //Or what ever object you are going to inherit from

SnakeGame.prototype.boxCollision = function() {
  //code
};

SnakeGame.prototype.otherFunction = ...
然后要使用它,请执行以下操作:

var mySnakeGame = new SnakeGame();
mySnakeGame.boxCollision();
同样,在你的物品上使用大写字母是很重要的,SnakeGame而不是SnakeGame。这是一种惯例,有助于你把事情搞清楚


如果您想了解有关JavaScript原型的更多信息,本文还提供了更多信息。

那么,在第一种情况下,您是如何调用boxCollision的?这是A,B;仅当定义了A和B时才有效。问题似乎不在于原型,而在于如何调用方法。您传递给它的参数必须与任何其他函数一样存在,无论原型与否。您不需要定义。您可以直接实现。i、 e拆下本箱碰撞A、B的管路;而且它可以根据您的需要工作。顺便说一句,我建议您阅读一些有关此主题的文档,如MDN: