ES6 class 算是倒退么...
发布于 3 年前 作者 magicdawn 4345 次浏览 最后一次编辑是 2 年前 来自 问答

e,g koa

以前

const app = require('koa')();

now, koa v2 使用 ES6 class https://github.com/koajs/koa/blob/2.0.0-alpha.2/lib/application.js#L30

const Koa = require('koa');
const app = new Koa();

untitled1.png

感慨一下, 你们大js 圈真会玩 ~

12 回复

老是有种残次品的感觉

原型继承又不是不能用 untitled1.png

以前: require('koa')() 现在: new (require('koa'))

用起来的话就是API风格不一样,作者喜欢选哪种不就是看个人爱好

class后感觉怪怪的

感觉js的节操丢失了

能想到的唯一作用是 IDE可以根据class做代码提示了

创建 Person var Person = function() { this.name = 123; } 利用 new 创建对象 new Person() # => Person {name: 123} 如果漏掉一个 new name = 'originName'

Person() # => undefined

name # => 123

这曾经是一个坑,ES6通过class找补回来了吧。

@li-qiang

这是坑, 但是可以检测 this instanceof ConstructorName啊, 脏活累活在定义类的时候干了, 暴露出去一个干净的工厂方法API~多好

挺好的挺好的

@magicdawn 匿名类好像不方便使用。 个人认为,一个关键字的区分 比 this instanceof ConstructorName 简单直接。

es6以前,创建类不好理解,让后端程序员不好理解。 有了new之后,和后端的用法就一致了。 我想new也就是这么点作用吧。

回到顶部