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 回答