MST

星途 面试题库

面试题:JavaScript对象创建表达式之Object.create()方法深度理解

已知有一个原型对象`animalPrototype`,它有属性`species`值为'general animal'和方法`move`能在控制台打印'Animal is moving'。请使用`Object.create()`方法创建一个`dog`对象,`dog`对象有自己的`name`属性值为'Buddy',并且能继承`animalPrototype`的属性和方法。之后调用`dog`的`move`方法,并解释`Object.create()`在这个过程中的作用原理。
41.9万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
  1. 创建dog对象并调用move方法
const animalPrototype = {
    species: 'general animal',
    move() {
        console.log('Animal is moving');
    }
};

const dog = Object.create(animalPrototype);
dog.name = 'Buddy';

dog.move(); 
  1. Object.create()作用原理Object.create()方法创建一个新对象,新对象的[[Prototype]](即原型)会被设置为传入的第一个参数。在上述代码中,Object.create(animalPrototype)创建了一个新对象dogdog的原型被设置为animalPrototype。这使得dog对象能够继承animalPrototype上定义的属性(如species)和方法(如move)。当调用dog.move()时,JavaScript引擎会首先在dog对象自身查找move方法,如果没找到,就会沿着其原型链,在animalPrototype中查找,最终找到并执行animalPrototype中的move方法。