Object.assign()
是JavaScript中一個常用的方法,用于將一個或多個源對象的可枚舉屬性復制到目標對象。本文將介紹如何手動實現一個類似的函數。
Object.assign
的核心邏輯是:
1. 檢查目標對象是否可寫
2. 遍歷源對象的可枚舉屬性
3. 將屬性復制到目標對象
function myAssign(target, ...sources) {
if (target === null || target === undefined) {
throw new TypeError('Cannot convert undefined or null to object');
}
const result = Object(target);
sources.forEach(source => {
if (source === null || source === undefined) {
return;
}
for (const key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
result[key] = source[key];
}
}
});
return result;
}
const obj1 = { a: 1 };
const obj2 = { b: 2 };
const result = myAssign({}, obj1, obj2);
// { a: 1, b: 2 }
雖然這個實現不能完全替代原生Object.assign
,但它展示了該方法的核心工作原理。在實際開發中,建議直接使用原生方法以獲得更好的性能和完整性。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。