Knockout.js 烘焙或有效淘汰默认/可选可观察

Knockout.js 烘焙或有效淘汰默认/可选可观察,knockout.js,Knockout.js,我需要在视图模型上设置几个值,这些值在传递给viewModel构造函数的参数上可能有对应的值,也可能没有对应的值 我熟悉jQuery插件的默认对象和与传入选项的合并,我想知道在Knockout中是否有类似的可观察对象 以下是一次性的,但如果有十几封或更多的邮件,我不想对每封邮件都这样做: export function viewModel(params) { const vm = {}; vm.messageOne = params.hasOwnProperty('message

我需要在视图模型上设置几个值,这些值在传递给viewModel构造函数的参数上可能有对应的值,也可能没有对应的值

我熟悉jQuery插件的默认对象和与传入选项的合并,我想知道在Knockout中是否有类似的可观察对象

以下是一次性的,但如果有十几封或更多的邮件,我不想对每封邮件都这样做:

export function viewModel(params) {
    const vm = {};
    vm.messageOne = params.hasOwnProperty('messageOne') ? params.messageOne : 'My default message';
}

您可以使用
Object.assign
合并这两个对象:

function ViewModel(params) {
  // All default properties go here:
  const vm = { messageOne: "My Default Message" };

  // Overwrite properties that are in `params`
  Object.assign(vm, params);

  /* ... */
}
如果您有一组有序的消息,那么它们应该以数组形式出现,而不是以带有键的对象出现

如果您只想将一个对象转换为具有可观察属性的对象,那么可以使用插件