Lea*_*yes 4 javascript node.js lodash
在以下情况下,我发现 lodash 似乎没有复制源对象的 getter:
const _ = require("lodash");
let sourceObject = { };
Object.defineProperty(sourceObject, "abc", {
get: () => 123
});
let cloneObject = _.cloneDeep(sourceObject);
console.log(sourceObject.abc); // 123
console.log(cloneObject.abc); // undefined
Run Code Online (Sandbox Code Playgroud)
有没有办法用lodash模块实现上述目的?
仅当定义的属性为enumerable
. 这将导致它被检测到,Object.keys()
这最终是 lodash 获取属性名称列表的方式。当您使用选项定义属性时,这是可配置的{enumerable: true}
,但它默认为false
,这就是为什么_.cloneDeep
不选择您的属性。
有关更多详细信息,请参阅Object.defineProperty 的 MDN 文档。