0
我有一个私有函数,我使用了几个公共函数。基本上,公共函数是向对象添加内容的捷径。像:使用.bind私有函数和构造函数
function Basket() {
this.apple = [];
this.orange = [];
}
// Private
var _add = function (to) {
this[to].push(new Fruit(to));
}
// Public
Basket.prototype.addApple = function() {
_add.call(this, 'apple');
}
Basket.prototype.addOrange = function() {
_add.call(this, 'orange');
}
我想删除.call
和使用.bind
代替。但是这样做:
var _add = function (to) {
this[to].push(new Fruit(to));
}.bind(Basket);
这将无法正常工作,因为它将它绑定到构造函数而不是对象实例。
这甚至有可能实现吗?或者应该使用.call
更好?或者是我的设计模式搞砸了!?
是的,如果我添加私人功能的对象。但我不想这样做:) –
@distractedBySquirrels哦,我现在得到你的问题! –
@distractedBySquirrels我编辑过。那是你要的吗 ? –