每日吃透一个面试题(2)--原型链

109 阅读1分钟

2. 请问创建对象有哪几种方式?

  1. 通过对象字面量(对象初始化器)创建

	const obj = {}

  1. 通过构造函数创建

	function Person(name, age) {
		this.name = name
		this.age = age
	}
	const person = new Person('张三', 21)
        
        // 用原始的Object构造函数
	const obj = new Object()

  1. 通过Object.create创建

它可以指定一个对象作为该对象的原型


  const Animal = {
  	type: "dog", // 属性默认值
  	displayType : function() {  // 用于显示type属性的方法
		console.log(this.type);
  }
}

// 创建一种新的动物——animal1
	const animal = Object.create(Animal);
	console.log(animal.__proto__ === Animal) //true

  1. 通过类来创建
	
	class Dog {
	name;
	age;
	constructor(name, age) {
	this.name = name
	this.age = age
 		}
	}
	
	const dog = new Dog()
	

面试延伸

请具体讲一下ES6 类这个特性?