V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vevlins
V2EX  ›  前端开发

es6 的 class 是语法糖还是改变了原有的原型继承方式?

  •  
  •   vevlins · 2018-07-24 19:14:53 +08:00 · 1669 次点击
    这是一个创建于 2124 天前的主题,其中的信息可能已经有所发展或是发生改变。

    求问?

    3 条回复    2018-08-02 19:13:58 +08:00
    rabbbit
        1
    rabbbit  
       2018-07-24 19:29:25 +08:00   ❤️ 1
    ECMAScript 2015 中引入的 JavaScript 类实质上是 JavaScript 现有的基于原型的继承的语法糖。类语法不会为 JavaScript 引入新的面向对象的继承模型。
    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Classes
    vevlins
        2
    vevlins  
    OP
       2018-07-24 19:49:34 +08:00
    @rabbbit 非常感谢 还有一个疑问,es6 类有静态方法,如果依然是通过原型链实现的,那么实际上非 this 挂载的都是原型方法,应该与基于类实现的对象的静态方法是一样的吧。那 es6 的 static 的作用是什么?
    Windlike
        3
    Windlike  
       2018-08-02 19:13:58 +08:00   ❤️ 1
    原型方法通过 ClassName.prototype.fn = function(){}这样去定义,通过实例去调用:
    const instance = new ClassName();
    instance.fn();

    而静态方法(static)通过 ClassName.staticFn = function() {}来定义,通过类本身就可以调用:
    ClassName.staticFn();
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1947 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 00:45 · PVG 08:45 · LAX 17:45 · JFK 20:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.