Determine if an object property is ko.observable Determine if an object property is ko.observable javascript javascript

Determine if an object property is ko.observable


Knockout includes a function called ko.isObservable(). You can call it like ko.isObservable(vm[key]).

Update from comment:

Here is a function to determine if something is a computed observable:

ko.isComputed = function (instance) {    if ((instance === null) || (instance === undefined) || (instance.__ko_proto__ === undefined)) return false;    if (instance.__ko_proto__ === ko.dependentObservable) return true;    return ko.isComputed(instance.__ko_proto__); // Walk the prototype chain};

UPDATE: If you are using KO 2.1+ - then you can use ko.isComputed directly.


Knockout has the following function which I think is what you are looking for:

ko.isObservable(vm[key])


To tack on to RP Niemeyer's answer, if you're simply looking to determine if something is "subscribable" (which is most often the case). Then ko.isSubscribable is also available.