gpt4 book ai didi

javascript - knockout : Clone observable object into another variable and turn it not observable

转载 作者:行者123 更新时间:2023-11-30 09:20:13 26 4
gpt4 key购买 nike

我找不到这个特定问题的任何答案。假设我有一个可观察对象,我想将它克隆到另一个完全独立的变量中,并使该变量不可观察。有人可以帮我找到这个问题的解决方案吗?

我试过这样的解决方案:

var notObservableVar = observableVar();

但是新变量似乎并不独立,因为我的后续代码似乎使用 observableVar 而不是新的独立变量。

最佳答案

更新:

谢天谢地,@Brother Woodrow 在评论中指出,Knockout 为这项工作提供了一个 API 方法 .toJS():

var notObservable = ko.toJS(observableVar)

https://knockoutjs.com/documentation/json-data.html

旧答案(如果你的可观察对象有子可观察对象,不要使用这个):

要创建对象的浅拷贝,您可以使用Object.prototype.assign():

var notObservableVar = Object.assign({}, observableVar());

另一种选择是使用对象解构:

var notObservableVar = {...observableVar()};

请注意,这两种方法都需要 ES6 支持——要么在你的 buildstack (Babel) 中,要么在它应该运行的浏览器中。还要注意,要使对象解构与 Babel 6 一起工作,你需要一个插件(因为当 Babel 6 是当前版本时,对象解构仍然是一个提案。

如果 ES6 不适合你,你可以使用字符串化然后解析对象的旧方法:

var notObservableVar = JSON.parse(JSON.stringify(observableVar()));

关于javascript - knockout : Clone observable object into another variable and turn it not observable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52242709/

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