es6 class使用文档

//定义了一个名字为Person的类

constructor方法是类的构造函数的默认方法,通过new命令生成对象实例时,自动调用该方法。
constructor方法如果没有显式定义,会隐式生成一个constructor方法。所以即使你没有添加构造函数,构造函数也是存在的。constructor方法默认返回实例对象this,但是也可以指定constructor方法返回一个全新的对象,让返回的实例对象不是该类的实例。
constructor中定义的属性可以称为实例属性(即定义在this对象上),constructor外声明的属性都是定义在原型上的,可以称为原型属性(即定义在class上)。

class Person{   
            constructor(name,age){      //constructor是一个构造方法,用来接收参数
                       this.name = name;        //this代表的是实例对象
                      this.age=age;
            }
        say(){      //这是一个类的方法,注意千万不要加上function
            return "我叫" + this.name+"今年"+this.age+"岁了";
    }
}
var obj=new Person("天天",18);
console.log(obj.say());         //我叫天天今年18岁了

修改类方法

Person.prototype.say=function(){        //定义与类中相同名字的方法。成功实现了覆盖!
    return "我是来证明的,你叫" + this.name+"今年"+this.age+"岁了";
}
var obj=new Person("天天",38);
console.log(obj.say());         //我是来证明的,你叫天天今年38岁了

新增类方法

Person.prototype.addFn=function(){
    return "我是通过prototype新增加的方法,名字叫addFn";
}
var obj=new Person("天天",48);
console.log(obj.addFn());       //我是通过prototype新增加的方法,名字叫addFn

动态新增多个类方法

Object.assign(Person.prototype,{
    getName:function(){
         return this.name;
    },
    getAge:function(){
         return this.age;
    }
})
var obj=new Person("天天",58);
console.log(obj.getName());    //laotie
console.log(obj.getAge());     //88

转载于:https://blog.51cto.com/14181265/2344511

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值