我如何在另一个函数上调用一个函数

时间:2018-06-25 00:43:54

标签: javascript p5.js

我试图调用一个函数做乘法,该函数在另一个接受两个数字作为参数的函数上。我曾尝试使用构造函数和嵌套函数,但无济于事。我尝试了以下方法:

function Coordinate(a, b) {
    var x, y;
    return {x: a, y: b};
    function multiply(n) {
       x * n;
       y * n;
    }
}
var makeCoordinate = new Coordinate(2,3);
console.log(makeCoordinate.multiple(2));

//预期输出:4 6;

4 个答案:

答案 0 :(得分:2)

您应将multiply设置为Coordinate prototype 上,以便在调用new Coordinate时,实例化的对象将具有{{1} }作为一种方法。为了使它起作用,您还应该设置multiplythis.x而不是直接返回对象:

this.y

或者,如果您希望function Coordinate(a, b) { this.x = a; this.y = b; } Coordinate.prototype.multiply = function(n) { this.x *= n; this.y *= n; return this; } var makeCoordinate = new Coordinate(2,3); console.log(makeCoordinate.multiply(2));仅返回相乘的坐标而不更改原始对象,则仅返回坐标:

multiply

答案 1 :(得分:0)

答案修改了两个部分:

  1. 协调员的创建
  2. multiple->乘法

希望获得帮助:)

function Coordinate(a, b) {
    this.x = a;
    this.y = b;
    this.multiply = function(n) {
       return this.x * n + " " + this.y * n;
    }
}
var makeCoordinate = new Coordinate(2,3);
console.log(makeCoordinate.multiply(2));

答案 2 :(得分:0)

好吧,首先,您的console.log正在调用多个而不是多个。

第二,尝试这样的方法:

YourServiceClassName.this

答案 3 :(得分:0)

在评论中已阐明,(最简单的)解决方案是:

MATHJAX

如果您不想在每个Coordinate对象中复制该函数,也可以将其放入原型中。