添加一个像 extend 这样的方法来流畅地使用 ko.observable

Add a method like extend to use fluently with ko.observable

我想知道有没有办法,我可以写一个新的方法test(),它可以像ko.observable().test()一样使用,我实际上可以得到里面的observable的引用。我想做的是,我不想写 ko.observable().extend({extenderName: "value"}),而是想写 ko.observable().extenderName(arg1, arg2)

您可以将其添加到 ko.observable.fn,如下所示:

ko.observable.fn.test = function(arg1) {
  console.log(this() + "," + arg1);
};

var obs = ko.observable("hello");

obs.test("world");
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>

JS Fiddle: https://jsfiddle.net/c8z8c2r8/