ES6之Class

  ES6中的Class和JS的比起来无疑是让对象原型的写法更加清晰,更像面向对象编程的语法而已,注意一个问题ES6里面的Class的内部定义的所有方法都是不可枚举的,而且在ES6中Class不存在变量提升。(注意:Class同时具有prototype属性和__proto__属性,所以同时存在两条继承链)。

  Class的基本写法示例代码

lass Test  {
    constructor(value){        //如果没有构造器那么会自动添加一个空的构造器
        this.value = value;
        console.log(" Hi "+ value);
    }
    sayAge (age) {
        console.log(" 年龄是 "+ age);
    }
}
var a = new Test("张三");        // Hi 张三
console.log(a.sayAge(20));        // 年龄是 20

  Class是可以继承的,也可以重写继承方法也可以在继承方法中添加新的方法,在继承里面有个关键字super代表了父类的实例,而且继承链总是指向父类,如果在某个函数前面加上static关键字,那么该方法则不会被继承,注意:class内部只有静态方法没有静态属性。

class Test { 
    constructor(value){ 
        this.value = value; 
    console.log(" Hi "+ value); 
    } 
    sayAge (age) { 
    console.log(" 年龄是 "+ age); 
    return true;            
    } 
} 
class Jicheng extends Test { 
    sayTizhong(tizhong){ 
    console.log("体重是"+tizhong); 
    return true;
    } 
} 
var a = new Jicheng("张三");             // Hi 张三
console.log(a.sayAge(20));             // 年龄是 20    true
console.log(a.sayTizhong("60kg"));        //体重是60kg    true

  最后说个方法是new.target,这个函数可以用作于确定构造函数是这么被调用的。

    

posted on 2017-10-21 17:22  另一种失败 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/qiaohong/p/7705291.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值