Javascript——类的本质

425 阅读1分钟

类的本质

console.log(typeof Star); //function

构造函数+原型实现面向对象编程

(1)构造函数有原型对象 prototype (2)构造函数原型对象 prototype 里面有 constructor 指向构造函数本身 (3)构造函数可以通过原型对象添加方法 (4)构造函数创建的实例对象有__proto__原型指向构造函数的原型对象

ES6 通过类实现面向对象编程

  1. 类的本质就是函数,可以简单地认为,类就是构造函数的另一种写法。
  2. 类有原型对象 prototype
  3. 类原型对象 prototype 里面有 constructor 指向类本身
  4. 类可以通过原型对象添加方法
  5. 类创建的实例对象有__proto__原型指向类的原型对象: 实例对象.__proto__ === 类.prototype

所以 ES6 的类的绝大部分功能,ES5 都可以做到,新的 class 写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。

所以 ES6 的类其实就是语法糖.

语法糖:语法糖就是一种便捷写法.简单理解,有两种方法可以实现同样的功能,但是一种写法更加清晰、方便,那么这个方法就是语法糖