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();
感慨一下, 你们大js 圈真会玩 ~
老是有种残次品的感觉
原型继承又不是不能用
以前:
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找补回来了吧。
这是坑, 但是可以检测 this instanceof ConstructorName啊, 脏活累活在定义类的时候干了, 暴露出去一个干净的工厂方法API~多好
@i5ting 愿意试试 ThinkJS 么?https://github.com/75team/thinkjs
挺好的挺好的
@magicdawn
匿名类好像不方便使用。
个人认为,一个关键字的区分 比 this instanceof ConstructorName
简单直接。
es6以前,创建类不好理解,让后端程序员不好理解。 有了new之后,和后端的用法就一致了。 我想new也就是这么点作用吧。