В следующей ситуации я нахожу, что lodash, кажется, не копировать поглотитель из исходного объекта:Есть ли способ сделать lodash copy свойство getters и seters?
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
Есть ли способ для достижения выше с lodash модуля?
Потрясающие спасибо за супер быстрый ответ !! отлично работает: D –
Кажется, что lodash deepClone действительно найдет геттер, если он перечислим, но не сделает копию геттера в новом объекте. Вместо этого он будет получать доступ к значению, используя getter и clone, которые будут использовать значение raw. Кажется, что клоун объектного объекта отсутствует в определении геттера ??? – Moonwalker
Да, получение значений прямолинейно. Создание «истинного клона» для некоторого определения этого [сложно выразить мягко] (http://stackoverflow.com/questions/728360/most-elegant-way-to-clone-a-javascript-object) –