如何构建一个javascript类一次使用多个子方法?

时间:2017-02-08 08:34:50

标签: javascript node.js class oop object

我们说我有这三个班级:

function Basket() {
   this.catches = []
}

Basket.prototype.addCatch = function(catch) {
   catches.push(catch)
}


function Pole() {
}

Pole.prototype.catchFish = function() {
   return "fish"
} 


function Fisherman() {
   this.pole = new Pole()
   this.basket = new Basket()
}

现在,当我创建一个Fisherman时,我可以捕到一条鱼并将其放入篮子中。

现在我想在一个电话中同时做这两件事。我现在实现它的方式如下:

function Fisherman() {
   this.pole = new Pole()
   this.basket = new Basket()

   this.utils = {}
   this.utils.catchAndStore = function() {
      let { pole, basket } = this
      basket.addCatch(pole.catchFish())
   }.bind(this)
}

我似乎工作但感觉不太对劲。构建我的课程以实现这一目标的好方法是什么?或者这种复杂性是否应该从这个课程中消失?

1 个答案:

答案 0 :(得分:0)

就像这样:

Fisherman.prototype.catchFish = function () {
    if (!this.basket.addCatch || !this.pole.catchFish)
        return console.log("Hey!I need correct tools!");
    this.basket.addCatch(this.pole.catchFish());
}