来自clone_deep npm的lodas deepClone或deepClone返回相同的实例

问题描述 投票:0回答:1

我现在所观察到的让我质疑现实。当然,我正在使用 Javasript。

我有以下代码(

clone-deep
npm 包 v 4.0.1)

    let deepCloned = cloneDeep(obj);
    
    if (deepCloned === obj) {
        debugger;
    }

当然,在某些情况下,调试器会受到影响。当我将其更改为 lo dashes 实现时

    let deepCloned = _.cloneDeep(obj);
    
    if (deepCloned === obj) {
        debugger;
    }

可以观察到相同的行为。所以我必须在这里遗漏一些非常基本的东西。它是什么?

javascript lodash
1个回答
0
投票

来自包页面:https://www.npmjs.com/package/clone-deep#heads-up

注意!

最后一个参数指定是否克隆实例(对象 来自自定义类或不是由对象创建的 构造函数。该值可能为 true 或用于克隆的函数 实例。

当提供instanceClone函数时,它将被调用 克隆不是“普通”对象的对象(由 isPlainObjectisPlainObject)。如果未指定instanceClone,则此 库不会尝试克隆非普通对象,并且只会 复制对象引用。

我自己不使用该包,并且您没有提到“obj”是如何创建的,所以我无法重现您的确切问题。

© www.soinside.com 2019 - 2024. All rights reserved.