knockout.js - unwrapObservable 和 () 的区别

标签 knockout.js

之间是否存在实际差异:

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

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

我应该更喜欢上述之一吗?为什么?

最佳答案

不同的是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 的较短版本已在 knockout 2.3 中添加 - ko.unwrap

关于knockout.js - unwrapObservable 和 () 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16710425/

相关文章:

javascript - 在 Knockout 中调整 Leaflet JS map 的大小

validation - 手动 knockout 以重新评估依赖的 Observable

javascript - knockout 订阅事件触发两次

javascript - 无法应用 knockout 绑定(bind),即使使用默认教程

javascript - 如何在不添加更多 html 的情况下单独切换 foreach div 的 knockout ?

javascript - Browserify Babel ES2015 Knockout 相互依赖模块

javascript - Knockout JS 与映射递归模板

javascript - 监控html绑定(bind)内容的变化

javascript - HTML 多选更改 'None selected' 文本

javascript - JS/Knockout 无限滚动-滚动条跳转到页面顶部