我们说我有这三个班级:
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)
}
我似乎工作但感觉不太对劲。构建我的课程以实现这一目标的好方法是什么?或者这种复杂性是否应该从这个课程中消失?
答案 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());
}