理解类:从延伸3点构成三角形?

时间:2015-05-28 06:27:10

标签: javascript class inheritance composition

问题: 如何使用Triangle Class扩展Point(超(?))并组成一个如下所示的对象:

//  "name":"Thomas The Triangle",
//  "points": [
//     {age: "2015-05-28T06:23:26.160Z", x: 1, y: 1 }, 
//     {age: "2015-05-28T06:23:26.161Z", x: 0, y: 3 },
//     {age: "2015-05-28T06:23:26.164Z", x: 2, y: 3 }
//  ]

JS:

class Point {
  constructor(x, y){
    this.name = "Point"
    this.age = new Date();
    this.x = x;
    this.y = y;
  }
}



class Triangle extends Point{
  constructor(coords, name) {

    super(coords[0][0], coords[0][1]); //this line is best I could do but not correct
    this.name = name
  }


}
let t1 = new Triangle([[1,1],[0,3],[2,3]], 'Thomas The Triangle')
console.log(t1);

**

Live code for ES6

**

1 个答案:

答案 0 :(得分:8)

Triangle看起来不需要扩展Point。它将多个Point对象组合成点数组。像这样:

class Triangle {
  constructor(coords, name) {
    this.points = coords.map((point) => {
        return new Point(...point);                        
    });
    this.name = name;
  }
}