循环遍历具有knockout可观察属性的JS对象

sea*_*g0n 2 javascript javascript-objects knockout.js

我有以下JS对象:

function AdvancedFilters() {
    var self = this;
    self.AdvancedColId = ko.observable();
    self.AdvancedComapanyName = ko.observable();
    self.AdvancedClientCountry = ko.observable();
    self.AdvancedClientCity = ko.observable();
    self.AdvancedDatabaseLocation = ko.observable();
    self.AdvancedUserName = ko.observable();
    self.AdvancedEmail = ko.observable();
    self.AdvancedPhoneNo = ko.observable();
    self.AdvancedAccessFrom = ko.observable();
    self.AdvancedAccessTo = ko.observable();
    self.AdvancedCreatedOn = ko.observable();
    self.AdvancedCandidates = ko.observable();
    self.AdvancedErrorsReported = ko.observable();
    self.AdvancedActive = ko.observable();
    self.AdvancedRequestes = ko.observable();
}
Run Code Online (Sandbox Code Playgroud)

我必须循环遍历AdvancedFilters对象中存在的所有属性,并执行适用于所有属性的操作,而不是单独访问每个属性.我必须这样:

for (var property in AdvancedFilters) {         
         // do something with property     
}
Run Code Online (Sandbox Code Playgroud)

我尝试了上面的语法,但它无法正常工作.

GôT*_*ôTô 6

试试这个

function AdvancedFilters() {
    var self = this;
    self.AdvancedColId = ko.observable();
    //...
}

var obj = new AdvancedFilters();
for (var property in obj) {         
    alert(ko.isObservable(obj[property]) ? obj[property]() : property);
}
Run Code Online (Sandbox Code Playgroud)