如何从嵌套对象调用函数?

时间:2019-08-25 20:34:30

标签: javascript

我有一个名为obj的对象,该对象具有一个嵌套的对象comments和一个函数startMatch,该函数返回的对象如下:

var obj = {};
obj.comments = {
  startMatch: function(matchStrings, isCaseSensitive) {
    return {
      subscribe: function(delegate) {
        delegate('test')
        const unsubscribe = () => {
          console.log("unsubscribed");
        };
      }
    };
  }
};

var subscription = obj.comments.startMatch([], false).subscribe(function(result) {
  console.log(result)
});

我希望以这种方式调用unsubscribe函数:

subscription.unsubscribe();

但是我不知道如何解决这个问题,而不会收到未订阅的未定义错误。

1 个答案:

答案 0 :(得分:1)

选择最简单的方法:

var obj = {};
obj.comments = {
  startMatch: function(matchStrings, isCaseSensitive) {
    return {
      subscribe: function(delegate) {
        delegate('test');
          return { unsubscribe: () => console.log("unsubscribed") }
      }
    };
  }
};

var subscription = obj.comments.startMatch([], false).subscribe(function(result) {
  console.log(result)
});

subscription.unsubscribe();