企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### class:类 1. ES6类相当于ES5的语法糖 2. 使用class关键字声明类:class Fn() {} || const Fn = class {} 3. 类中的所有方法之间不需要加入逗号,在函数前也不需要加入function关键字 4. function fn(x, y) { this.x = x } === class fn { constructor(x, y){ this.x = x } } Point.prototype = { _initProperty = 1; 实例属性的另一种写法 static _initProperty = 1; 类的静态属性(目前还只是提案,无法使用,可在类的外面定义:Point._initProperty = 1) constructor() { this._initProperty = 1; 实例属性 } toString() {} toValue() {} get y() {} set y() {} static classMethod() {} 类的静态方法 }; 5. 向类中一次添加多个方法 Object.assign(Point.prototype, { toString(){}, toValue(){} }); 6. constructor方法是类中默认的方法,在new生成对象时自动调用,默认返回实例对象( this ),当然也可以更改指向 7. 类只能通过new进行创建 8. 类的实例属性定义在自身上,也就是this上,否则就是原型对象上 9. 类中也拥有get set函数,可以拦截自定义属性的设置返回行为 10. 类的立即执行 let person = new class { constructor(name) { this.name = name } }( 'Jack' ) 11. 类和模块内部默认就是严格模式,不需要 'use strict' 声明 12. 类不存在变量提升,与ES5函数不同 13. static关键字定义类的静态方法,不被实例所继承,类中的this指向类,不指向实例对象 14. 父类的静态方法,也可被子类继承 15. new.targer为新增的属性,指向类本身,如果是子类继承,则指向子类