y = ko.observable("value");
x = ko.utils.unwrapObservable(y);
и
y = ko.observable("value");
x = y();
Должен ли я выбрать один из вышеперечисленных и почему?
Ответ 1
Разница в том, что 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.
EDIT:
В нокаут добавлена более короткая версия unwrapObservable 2.3 - ko.unwrap