ES5/ES6继承的区别

  1. class有变量提升,但初始化不会赋值。
const demo = new Demo() // 会报错 ReferenceError(引用错误)
class Demo {}
  1. class内部会启用严格模式use strict
class Demo {
  constructor (){
    foo = 1 // 报错 foo未定义
  }
}
const demo = new Demo() 
  1. class中的所有方法(包括静态方法和实例方法)都没有原型对象prototype, 也没有constructor, 故不能使用new方法调用class中的方法。 但class必须使用new调用。
 class Demo {
  constructor (){
  }
  test() {
    console.log("test")
  }
}
const demo1 = Demo() // 报错 Class constructor Demo cannot be invoked without 'new'
const demo = new Demo() 
new demo.test()  // 报错 demo.test is not a constructor
  1. class内部无法重新类名
class Foo {
  constructor() {
    this.foo = 42;
    Foo = 'Fol'; // TypeError: Assignment to constant variable.
  }
}
new Foo()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • class的基本用法 概述 JavaScript语言的传统方法是通过构造函数,定义并生成新对象。下面是一个例子: ...
    呼呼哥阅读 9,529评论 3 11
  • 第一章 错误处理: 错误: 程序运行过程中,导致程序无法正常执行的现象(即bug) 现象: 程序一旦出错,默认会报...
    fastwe阅读 4,834评论 0 1
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,959评论 1 45
  • Class 的基本语法 简介 JavaScript 语言中,生成实例对象的传统方法是通过构造函数。下面是一个例子。...
    huilegezai阅读 3,480评论 0 0
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 13,090评论 0 3