键:值数组中的访问函数

时间:2018-09-12 17:27:48

标签: javascript

对于定义如下功能的给定常量:

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。

2 个答案:

答案 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的力量;)