次のコードにko.computedは、 の大文字バージョンである がありますname。サブスクライバーは を変更nameしますが、計算されたオブザーバブルは変更を追跡しません。
var ViewModel = function() {
    this.name = ko.observable("Brad");
    this.nameUpper = ko.computed(function() {
        return this.name().toUpperCase();
    }, this);
};
var model = new ViewModel();
model.nameUpper.subscribe(function(newValue) {
    console.log('nameUpper changed to ' + newValue);
    this.name("Chris");
}, model);
console.log('nameUpper = ' + model.nameUpper());
model.name("Stevie");
console.log('nameUpper = ' + model.nameUpper());
期待される出力:
nameUpper = BRAD
nameUpper changed to STEVIE
nameUpper = CHRIS
実際の出力:
nameUpper = BRAD
nameUpper changed to STEVIE
nameUpper = STEVIE
これがjsfiddleです。
更新:この行を考えると、これは意図的なものと思われます。私の推測では、プログラマーが誤って無限再帰を誘発するのを防ぐためだと思います。