// the "source" object
const source = {
// ⭐ function copied ✅
max() {
console.log(this === source);
return 3;
},
// ⭐ getter invoked❗, NOT COPIED❗(during the assign❗)
get maxRowLength() {
return this.max();
},
};
// ⭐ during `Object.assign`:
// ---------------------------------------------
// • target.max = source.max
// (function copied ✅)
//
// • target.maxRowLength = source.maxRowLength // ⭐ console: true
// ╰⭐ getter invoked ╯
// (source getter invoked❗, NOT COPIED❗)
let target = Object.assign({}, source);
target.maxRowLength, // 3
typeof target.maxRowLength, // 'number'❗ (NOT a getter method❗)
typeof target.max, // 'function' (copied ✅)