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

标签 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();

但我无法弄清楚如何在不收到取消订阅未定义错误的情况下执行此操作。

最佳答案

选择最简单的方式:

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();

关于javascript - 如何从嵌套对象调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57649525/

相关文章:

javascript 引擎 : variable existance

javascript - Sequelize ,在 findOrCreate 后获取 id

javascript - 如何在 jwindowcrop 中重新设置裁剪框的宽度和高度?

javascript - 固定页脚和相对 DIV

javascript - Jasmine toEqual 未按预期工作

javascript - javascript_include_tag 的 Ruby On Rails 错误

javascript - 自定义电子邮件的 regardingobjectid 查找下拉列表

javascript - 如何将 angularjs 值分配给 jquery

javascript - 如何检测表单提交超时并重新提交?

javascript - 在 Angular 中使用 JavaScript 添加带有插值的标签