gpt4 book ai didi

javascript - 确定对象属性是否为 ko.observable

转载 作者:IT王子 更新时间:2023-10-29 02:42:39 26 4
gpt4 key购买 nike

我正在使用 KnockoutJS版本 2.0.0

如果我循环遍历一个对象的所有属性,我该如何测试每个属性是否是一个ko.observable?到目前为止,这是我尝试过的:

    var vm = {
prop: ko.observable(''),
arr: ko.observableArray([]),
func: ko.computed(function(){
return this.prop + " computed";
}, vm)
};

for (var key in vm) {
console.log(key,
vm[key].constructor === ko.observable,
vm[key] instanceof ko.observable);
}

但到目前为止一切都是假的。

最佳答案

Knockout 包含一个名为 ko.isObservable() 的函数。您可以像 ko.isObservable(vm[key]) 那样调用它。

评论更新:

这是一个函数,用于确定某物是否为计算可观察对象:

ko.isComputed = function (instance) {
if ((instance === null) || (instance === undefined) || (instance.__ko_proto__ === undefined)) return false;
if (instance.__ko_proto__ === ko.dependentObservable) return true;
return ko.isComputed(instance.__ko_proto__); // Walk the prototype chain
};

更新:如果您使用的是 KO 2.1+ - 那么您可以直接使用 ko.isComputed

关于javascript - 确定对象属性是否为 ko.observable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9625591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com