对于定义如下功能的给定常量:
const foo = (state) => ({
bar1: (count) => { }
bar2: (item, count) => { }
})
const fooGenerate = () => {
let state = {
apples: 20,
fruitList: []
}
return Object.assign(
state,
foo(state)
)
}
我希望bar2定义的函数能够调用bar1。我尝试了foo[bar1(count)]
或foo[bar1](count)
或bar1(count)
的各种组合,但似乎都不起作用。有没有办法做到这一点?我知道我可以像这样从分配的对象中调用它:
newobject.bar2(item, count);
newobject.bar1(count);
但是理想情况下,我希望bar2从函数内部自动调用bar1。
答案 0 :(得分:1)
您可以使用变量来做到这一点:
const foo = (state) => {
var bar1 = (count) => { };
var bar2 = (item, count) => { bar1() }
return { bar1, bar2 };
};
答案 1 :(得分:1)
尝试这个:
const foo = (state) => ({
bar1: function(count) { console.log('bar1') },
bar2: function(item, count) { this.bar1() }
})
foo().bar2();
this
的力量;)