對象方法擴展
在 JavaScript 中,對象是屬性和方法的集合。除了內置的方法,我們還可以通過擴展對象的原型來添加新的方法。本教程將介紹如何使用 Object.is
、Object.assign
和 Object.setPrototypeOf
方法來擴展對象。
1. Object.is 判斷兩個值是否完全相等
Object.is
方法用于比較兩個值是否相等,類似于 ===
操作符,但它對一些特殊情況的處理有所不同。
console.log(Object.is(120, 120)); // true
console.log(Object.is(NaN, NaN)); // true
console.log(NaN === NaN); // false
2. Object.assign 對象的合并
Object.assign
方法用于將一個或多個源對象的所有可枚舉屬性復制到目標對象,并返回目標對象。
const config1 = {host: 'localhost',port: 3306,name: 'root',pass: 'root',test: 'test'
};const config2 = {host: 'http://atguigu.com',port: 33060,name: 'atguigu.com',pass: 'iloveyou',test2: 'test2'
};console.log(Object.assign(config1, config2));
3. Object.setPrototypeOf 設置原型對象 Object.getPrototypeOf
Object.setPrototypeOf
方法用于設置一個對象的原型對象,而 Object.getPrototypeOf
方法用于獲取一個對象的原型對象。
const school = {name: '尚硅谷'
};const cities = {xiaoqu: ['北京', '上海', '深圳']
};Object.setPrototypeOf(school, cities);
console.log(Object.getPrototypeOf(school));
console.log(school);
通過這些方法,我們可以更靈活地操作和擴展對象。