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