JavaScript:创建带有函数的工厂函数,该函数使用具有特定属性的方法返回对象

时间:2019-06-02 16:40:18

标签: javascript object methods properties return

我有一个返回对象的工厂函数。在对象中,我有一个名为getNext的方法。

我希望getNext方法返回具有属性valuedone的对象。

下面是我的代码,但看来我在返回括号内的内容不正确。

function makeIterator (arr){

  let methodCalls = 0; 

    return {
      getNext(obj){
        methodCalls += 1; 

        return {
          this.value = ''; 
          this.done = ''; 
        }
      },

      getIndex(){
        return methodCalls
      }
    }
  }

我上面的代码未通过下面的测试规范:

it('the `getNext` method returns an object with the properties `value` and `done`', () => {
    const iterator = makeIterator(['first', 'second', 'third']);
    const iterableInfo = iterator.getNext();

expect(Object.keys(iterableInfo).sort()).toEqual(['done', 'value'].sort());
    expect(iterableInfo.hasOwnProperty('value')).toBe(true);
    expect(iterableInfo.hasOwnProperty('done')).toBe(true);
  });

我在做什么错?

1 个答案:

答案 0 :(得分:0)

似乎您正在尝试利用catch

下面是一个示例:

destructuring assignment

此处有更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment