资讯专栏INFORMATION COLUMN

ES5/ES6的继承的区别

Jaden / 2658人阅读

摘要:声明会提升,但是不会被初始化赋值,所以优先初始化赋值,则会进入暂时性死区,类似,变量内部启动严格模式的所有方法包括静态方法和示例方法都没有原型对象,所以也没有,不能使用来调用必须使用来调用内部无法重写类名

class声明会提升,但是不会被初始化赋值,所以优先初始化赋值,则会进入暂时性死区,类似letconst变量
const bar = new Bar(); // ok
function Bar() {
    this.bar = 42;
}
const foo = new Foo() // Foo is not defined
class Foo{
  constructor() {
    this.foo = 42;
  }
}
class内部启动 严格模式
function Bar(){
    baz = 42; // OK
}
const bar = new Bar();

class Foo {
    constructor() {
        foo = 42; // foo is not defined
    }
}
const foo = new Foo();
class的所有方法(包括静态方法和示例方法)都没有原型对象portotype,所以也没有[[construct]],不能使用new来调用
function Bar() {
   this.bar = 42;
}

Bar.prototype.print = function (){
    console.log(this.bar)
}
const bar = new Bar();
cont barPrint = new bar.print() ; // 42
class Foo {
    constructor() {
        this.foo = 42;
    }
    print () {
        console.log(this.foo)
    }
}

const foo = new Foo();
const fooPrint = new foo.print(); // foo.print is not a constructor
必须使用new来调用class
function Bar() {
    this.bar = 42;
}

const bar = Bar() ; // bar.bar: 42

class Foo() {
    constructor () {
        this.foo = 42;
    }
}

const foo = Foo() // Class constructor Foo cannot be invoked widhout "new"
class内部无法重写类名
function Bar() {
    Bar = "Baz" ; 
    this.bar = 42;
}
const bar = new Bar();
Bar // "Baz"
bar.bar // 42

class Foo{
    constructor() {
        this.foo = 12;
        Foo = "Fol" ; // err:Assignment to constant variable
    }
}

const foo = new Foo();
Foo = "Fol"; // 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/106398.html

相关文章

  • 前端面试题大集合:来自真实大厂532道面试题(只有题,没有答案)

    答案自己谷歌或百度找。 一、来源背景 面试题是来自微博@牛客网发布的真实大厂前端面经题目,我一直在收集题目长期一个一个的记录下来的,可能会有重复,但基本前端的面试大纲和需要掌握的知识都在其中了,面试题仅做学习参考,学习者阅后也要用心钻研其中的原理,重要知识需要系统学习、透彻学习,形成自己的知识链。 二、532道前端真实大厂面试题 express和koa的对比,两者中间件的原理,koa捕获异常多种情...

    Kerr1Gan 评论0 收藏0
  • 前端面试题大集合:来自真实大厂532道面试题(只有题,没有答案)

    答案自己谷歌或百度找。 一、来源背景 面试题是来自微博@牛客网发布的真实大厂前端面经题目,我一直在收集题目长期一个一个的记录下来的,可能会有重复,但基本前端的面试大纲和需要掌握的知识都在其中了,面试题仅做学习参考,学习者阅后也要用心钻研其中的原理,重要知识需要系统学习、透彻学习,形成自己的知识链。 二、532道前端真实大厂面试题 express和koa的对比,两者中间件的原理,koa捕获异常多种情...

    lushan 评论0 收藏0
  • 前端面试题大集合:来自真实大厂532道面试题(只有题,没有答案)

    答案自己谷歌或百度找。 一、来源背景 面试题是来自微博@牛客网发布的真实大厂前端面经题目,我一直在收集题目长期一个一个的记录下来的,可能会有重复,但基本前端的面试大纲和需要掌握的知识都在其中了,面试题仅做学习参考,学习者阅后也要用心钻研其中的原理,重要知识需要系统学习、透彻学习,形成自己的知识链。 二、532道前端真实大厂面试题 express和koa的对比,两者中间件的原理,koa捕获异常多种情...

    joyvw 评论0 收藏0
  • 为什么都说js 里面任何对象最终都继承了Object对象

    摘要:今天闲来无事,看见几行小字。又说所有对象,继承终是。强行押韵一波这首诗的意思就是说的我今天没有什么事情,然后无意中又在网上看到了任何对象都是从对象继承而来的这句话。一时兴起,便去验证这句话。 今天闲来无事,看见几行小字。又说所有对象,继承终是Obj。—— 强行押韵一波 这首诗的意思就是说的我今天没有什么事情,然后无意中又在网上看到了任何对象都是从Object对象继承而来的这句话。一时兴...

    Gemini 评论0 收藏0
  • ES5/ES6 继承

    摘要:原型链构造函数原型实例的关系每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,实例有一个指向原型对象的指针构造函数原型对象构造函数构造函数操作符实例对象构造函数实例对象原型对象如果试 原型链 构造函数/原型/实例 的关系 每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,实例有一个指向原型对象的指针 构造函数 --(prototype)-->...

    libin19890520 评论0 收藏0

发表评论

0条评论

Jaden

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<