MST

星途 面试题库

面试题:JavaScript 中如何利用对象可扩展能力实现混入模式

请描述在 JavaScript 里,如何通过对象的可扩展能力来实现混入(mixin)模式,即把一个对象的方法和属性添加到另一个对象中。并给出相应的代码示例。
23.4万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
  1. 实现原理
    • 在JavaScript中,对象具有可扩展性,可以使用Object.assign()方法或手动遍历源对象属性的方式来实现混入模式。Object.assign()方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象,它会修改目标对象并返回修改后的目标对象。手动遍历则是通过for...in循环遍历源对象的属性,并将其添加到目标对象中。
  2. 代码示例
    • 使用Object.assign()方法
// 源对象
const source = {
    method1: function() {
        console.log('This is method1');
    },
    property1: 'value1'
};
// 目标对象
const target = {};
// 使用Object.assign实现混入
Object.assign(target, source);
// 调用混入后的方法和属性
target.method1();
console.log(target.property1);
  • 手动遍历实现
// 源对象
const source = {
    method1: function() {
        console.log('This is method1');
    },
    property1: 'value1'
};
// 目标对象
const target = {};
// 手动遍历混入
for (let key in source) {
    if (source.hasOwnProperty(key)) {
        target[key] = source[key];
    }
}
// 调用混入后的方法和属性
target.method1();
console.log(target.property1);