27

次の間に実際の違いはありますか?

y = ko.observable("value");
x = ko.utils.unwrapObservable(y);

と:

y = ko.observable("value");
x = y();

上記のいずれかを優先する必要がありますか?その理由は?

4

1 に答える 1

44

違いは、それko.utils.unwrapObservableが安全であることです。パラメータが観測可能かどうかわからない場合に使用する必要があります。例えば:

function GetValue(x){
   return ko.utils.unwrapObservable(x);
}

function GetValueEx(x){
   return x();
}

var test = 5;
var y = GetValue(test) // Work fine, y = 5;
y = GetValueEx(test) // Error!

したがって、パラメーターが監視可能であることが正確にわかっている場合は、それ以外の場合に使用でき()ますunwrapObservable

編集: の短いバージョンがunwrapObservableノックアウト 2.3 に追加されました -ko.unwrap

于 2013-05-23T09:43:05.910 に答える