ES6 class 类

avatar
作者
筋斗云
阅读量:0

普通使用原型添加方法

function Animal(name) {   this.name = name; }  Animal.prototype.speak = function() {   console.log(this.name + ' makes a noise.'); };  function Dog(name) {   Animal.call(this, name); }  Dog.prototype = Object.create(Animal.prototype); Dog.prototype.constructor = Dog;  Dog.prototype.speak = function() {   console.log(this.name + ' barks.'); };  const dog = new Dog('Rex'); dog.speak(); // 输出:Rex barks. 

使用class添加方法

class Animal {   constructor(name) {     this.name = name;   }      speak() {     console.log(this.name + ' makes a noise.');   } }  class Dog extends Animal {   speak() {     console.log(this.name + ' barks.');   } }  const dog = new Dog('Rex'); dog.speak(); // 输出:Rex barks. 

对比下来,不难发现class类添加方法代码更加易懂,易读,也有好的继承特性,后续更加容易维护;

注意事项:

  1. 类并不会被提升;(意味着在代码执行之前,类声明不会被移动到作用域的顶部。这与传统的函数声明和变量声明不同,它们可以在作用域内被提升。因此,在使用类之前必须先声明类,否则会导致引用错误。)
  2. class 是一等公民(first-class);意味着它们可以像其他值一样被传递和使用。你可以将类赋值给变量,将类作为函数参数传递,从函数中返回类,以及在运行时动态地创建类。这使得类在 JavaScript 中更具灵活性,可以更方便地进行模块化和编程。
  3. 类必须在严格模式下运行,类和里面模块默认必须使用严格模式书写

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!