码迷,mamicode.com
首页 > 其他好文 > 详细

Class Field 为什么 有争议?

时间:2020-09-17 15:36:36      阅读:20      评论:0      收藏:0      [点我收藏+]

标签:之间   标识   create   语法   stage   属性集   解决   原因   规范   

简要看了一下Stage3的 Class Field提案,以及被卡住的原因

很意外的是,Class Field 在社区中,尤其是中文社区中的反对声音很大,几乎伴着提案进入Stage3。

反对的理由是因为:
Class Field颠覆了对象是一个属性集的传统定义,采用字段来定义类包含的东西,
引入了下述:
新的语法分析标记
新的规范类型
新的环境记录
新的对象成员结构

并且,因为字段的特性,选用了混沌时期的1.0版本时的mixin,类抄写的继承机制,颠覆了原型继承的基石,而将JS拉入真正的面向对象

这将导致,字段本身将代替属性,淘汰之前的写法
let obj={name:wzt,age:19}

后来的写法将变为:
let obj={name=wzt,age=19}

初看之下只是把冒号变为了等号,但实际上,原来对象中的,是一个字符串,就像map中的key一样,但是现在等号前面的,却类似于标识符,相当于声明的变量/常量

这将使之前很多JS之前修修补补的特性变得无意义,比如可计算属性,下标存取语法等等,也将使得JS内置对象之间的原型链变得无意义

尽管如此,就像You don‘t know JS的作者,并不太喜欢class语法一样。这个提案一直被卡在stage3,国内也不太认可。

但,JS的未来,如果是轻量级的应用,使用Object.create()的原型委托模式也绰绰有余。

如果是大型应用,就必须处理封装和多态这两个核心问题。这个提案本身也希望一劳永逸的解决封装这个问题

Class Field 为什么 有争议?

标签:之间   标识   create   语法   stage   属性集   解决   原因   规范   

原文地址:https://www.cnblogs.com/frontend-tutorial/p/13619179.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!