首页 > 其他 > 详细

ES6之Class

时间:2017-10-21 18:16:28      阅读:183      评论:0      收藏:0      [点我收藏+]

  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,这个函数可以用作于确定构造函数是这么被调用的。

    

ES6之Class

原文:http://www.cnblogs.com/qiaohong/p/7705291.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!