在es 6中使用对象作为方法的参数

时间:2018-05-23 08:59:59

标签: javascript class object ecmascript-6

我正在尝试将新的Point对象作为plus方法的参数,然后添加以返回值。 Point p在java中是正确的,但在javascript中不正确。

class Point {
    constructor(x, y) {
        this.x = x;
        this.y = y;
    }

    plus(Point p) {
        console.log(p.a);
        return new Point(p.a + this.x, p.b + this.y);
    }
}

console.log(new Point(1, 2).plus(new Point(2, 1)));

// → Point{x: 3, y: 3}

1 个答案:

答案 0 :(得分:3)

您需要使用没有类型的正确属性和参数。

class Point {

    constructor (x, y) {
        this.x = x;
        this.y = y;
    }

    plus (p) {
        return new Point(p.x + this.x, p.y + this.y);
    }
}

console.log(new Point(1, 2).plus(new Point(2, 1)));