ES6 class 算是倒退么...
 发布于 10 年前  作者 magicdawn  7671 次预览  最后一次回复是 10 年前  来自 问答 

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 回复
i5ting

老是有种残次品的感觉

yuu2lee4

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

valaxy

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

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

blackjack

class后感觉怪怪的

wwhgtt

感觉js的节操丢失了

zxc122333

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

li-qiang

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

Person() # => undefined

name # => 123

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

magicdawn

@li-qiang

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

alsotang

挺好的挺好的

li-qiang

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

eqiuno

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