代码之家  ›  专栏  ›  技术社区  ›  Razvan

淘汰:将可观察对象克隆到另一个变量中,并将其转换为不可观察对象

  •  1
  • Razvan  · 技术社区  · 6 年前

    我找不到这个问题的答案。假设我有一个可观察的对象,我想把它克隆成另一个完全独立的变量,使这个变量不可观察。有人能帮我找到这个问题的解决办法吗?

    我试着遵循这样的解决方案:

    var notObservableVar = observableVar();
    

    但是新的变量似乎不是独立的,因为我的后续代码似乎与ObservalEvar一起工作,而不是一个新的独立变量。

    1 回复  |  直到 6 年前
        1
  •  4
  •   connexo    6 年前

    更新:

    .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对您不可用,您可以使用旧的方法进行字符串化,然后解析对象:

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