ES2015 Class

传统写法:

//old way
function User(username, email) {
    this.username = username;
    this.email = email;

    //not shared method, not recommended
    // this.changeEmail = function(email) {
    //  this.email = email;
    // }
}

//shared method
User.prototype.changeEmail = function(email) {
    this.email = email;
}

var user = new User('Jack', 'jack@163.com');

user.changeEmail('jack@qq.com');

console.dir(user);

ES2015写法:

//new style, sugar syntax
class NewUser {
    //constructor initial variables
    constructor(username, email) {
        this.username = username;
        this.email = email;
    }

    //commom method
    changeEmail(email) {
        this.email = email;
    }

    // static register(name, email) {
    //  return new NewUser(name, email);
    // }

    //static methoad
    static register(...args) {
        return new NewUser(...args);
    }

    //getter & setter
    get foo() {
        return 'bar';
    }

   //getter & setter
    set bar(name) {
        this.name = name;
    }
}

let user2 = new NewUser('Nike', 'nike@qq.com');
user2.changeEmail('nike@gmail.com');

user2.bar = 'Hello'

console.dir(user2);

// console.dir(NewUser.register('jack', 'jack@qq.com'));


1、constructor方法

constructor方法是类的默认方法,通过new命令生成对象实例时自动调用该方法。一个类必须有constructor方法,如果没有显式定义,一个空的constructor方法会被默认添加。

2、静态方法

类相当于实例的原型,所有在类中定义的方法,都会被实例继承。如果在一个方法前,加上static关键字,就表示该方法不会被实例继承,而是直接通过类来调用,这就称为“静态方法”。

如果在实例上调用静态方法,会抛出一个错误,表示不存在该方法。

3、取值函数(getter)和存值函数(setter)

与ES5一样,在Class内部可以使用get和set关键字,对某个属性设置存值函数和取值函数,拦截该属性的存取行为。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • class的基本用法 概述 JavaScript语言的传统方法是通过构造函数,定义并生成新对象。下面是一个例子: ...
    呼呼哥阅读 4,123评论 3 11
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,859评论 18 139
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,686评论 0 11
  • 写在之前 因为简书字数限制,完整版地址:https://www.zybuluo.com/hainingwyx/no...
    hainingwyx阅读 13,988评论 0 41
  • 2017-6-23 星期六 天气晴 宝贝年龄:7周岁3个月和1周4个月 学经周期:3年半 学经人员:琦琦,琦妈。 ...
    厦门琦心妈阅读 273评论 0 0