javascript - 为什么所有对象的可观察属性值都是函数?

标签 javascript knockout.js

我有这个 javascript 对象:

var Email = function (data) {
    this.id = ko.observable();
    this.clientID = ko.observable(data.clientID);
    this.email = ko.observable(data.email);
    this.iscc = ko.observable(data.iscc);
}

单击按钮时,我将向 emails 数组添加一个新的 email:

function addCcEmail () {
     var client = self.selectedItem();
     var email = new Email({ "id": "1", "clientId": "", "email": "", "iscc": "true" });
     console.log(email);
     client.emails.push(email);
}

但是我在 console.log 上得到的结果是这样的:

Email {id: function, clientId: function, email: function, iscc: function}

我没有正确地初始化它吗?

最佳答案

是的,你做得对。所有属性都显示为函数的事实是因为它们的所有值都是 ko.observable,它们本身就是函数。

例如,如果您检查 email.id(),您将从 observable 中获得所需的值。

关于javascript - 为什么所有对象的可观察属性值都是函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45141726/

相关文章:

Javascript 切换关闭

javascript - 除非指定 'write' 选项,否则会计算 knockout js 未捕获错误 : Cannot write a value to a ko.。

data-binding - Knockout.js 单选按钮的 boolean 数据绑定(bind)问题

javascript - 可观察数组值未更新

c# - JavaScript中的条件语句

javascript - 如何使用 ActiveDirectory 2 返回 AD 组的成员?

javascript - 音频无法在移动设备上播放,但适用于桌面浏览器

javascript - 如何修复滚动条上的div

javascript - Knockout.js 通过 ajax 调用将项目添加到 foreach

javascript - KnockoutJS 未拾取 jQuery .change() 事件