Javascript js自定义函数返回函数而不是值

Javascript js自定义函数返回函数而不是值,javascript,knockout.js,Javascript,Knockout.js,这似乎是一个简单的实现: ko.observableArray.fn.findEl = function(id) { return ko.computed(function() { var ary = this(); return _.any(ary, function(user) { return user.id() === id;}); }, this); }; 但当我这样称呼它时: user.current.following.findEl(val

这似乎是一个简单的实现:

ko.observableArray.fn.findEl = function(id) {
    return ko.computed(function() {
      var ary = this();
      return _.any(ary, function(user) { return user.id() === id;});
    }, this);
};
但当我这样称呼它时:

user.current.following.findEl(valueAccessor())
它返回一个函数,要求我调用findEl,如:

user.current.following.findEl(valueAccessor())()

不用说,这并不理想

对,您返回的是实际计算的可观测函数,我相信您已经知道了。目前,我建议在findEl函数中调用要返回的计算可观测值的值访问器,并只返回该值。这至少可以将它保存在一个函数中,并且您不必担心每次都必须使用()调用函数。

只有在您使用它定义视图模型中的新可观察对象时,这才有效:

function User() {
    this.following = ko.observableArray([]);
    this.el = this.following.findEl(valueAccessor());
}