Skip to content

Why do we have some Vector methods twice? (static method) #271

Open
@trych

Description

@trych

We have the methods Vector.dist(), Vector.cross() and Vector.dot() twice in our code.

I think this is intentional, however, can someone help me understand how this works?

Example dist:

We once have it as a method of the Vector prototype:

Vector.prototype = {

// ...

dist: function(v) {
      var dx = this.x - v.x,
        dy = this.y - v.y,
        dz = this.z - v.z;
      return Math.sqrt(dx * dx + dy * dy + dz * dz);
    },

// ...

}

and then we have it as a Vector method, outside the prototype thing:

  Vector.dist = function(v1, v2) {
    return v1.dist(v2);
  };

@basiljs For the second version it says, it is a "static function" (quote: "Is meant to be called "static" i.e. Vector.dist(v1, v2);"). I don't know what that means. What is a static method?

Also, I guess the second version does not overwrite the first version, right? I guess it extends it somehow? Is the first version supposed to be private?

Also, I think this turns into a problem that the inline docs of one version are overwriting the other one. How should we handle that? Should we rename one of them?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions