Подтвердить что ты не робот

Разница между unwrapObservable и()

Существует ли реальная разница между:

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

и

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

Должен ли я выбрать один из вышеперечисленных и почему?

4b9b3361

Ответ 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