Javascript 如何从嵌套对象调用函数?
我有一个名为Javascript 如何从嵌套对象调用函数?,javascript,Javascript,我有一个名为obj的对象,它有一个嵌套对象comments,还有一个函数startMatch,返回如下对象: var obj = {}; obj.comments = { startMatch: function(matchStrings, isCaseSensitive) { return { subscribe: function(delegate) { delegate('test') const unsubscribe = () =
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)
});
subscription.unsubscribe();
我想这样做,我可以像这样调用unsubscribe
函数:
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)
});
subscription.unsubscribe();
但是如果不出现unsubscribe undefined(取消订阅未定义)错误,我想不出如何执行此操作。选择最简单的方法:
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();
您可以返回unsubscribe函数或将unsubscribe回调作为第二个参数传递给subscribe函数。那么,您可能应该执行
return unsubscribe
fromsubscribe
函数