ES6类

// ES6并没有在浏览器上适用,如果需要在浏览器中使用则需要转译
// ES6在node环境下有很大程度上兼容,几乎可以使用所有ES6语法,所以不用转译。
class Pf{
    // 私有属性可以这样写
    //#count = 0;也在提案中

    // 实例属性也可定义在类的顶层
    // 目前在提案中,实现不了,或者node不兼容
    //_pfname='潘峰';
    // pfage = 22;

    // constructor相当于ES5构造函数用于接收参数的作用,若类中没有显示定义constructor
    // 则该类会隐示的构造一个,constructor里的属性都是实例属性
    constructor(name,age){
        this.name=name;
        this.age=age
    };
    // ES6新提案类的静态属性可以写在类里  样式 static aaa = 'aa'
    // 老方法是在类外添加  Pf.aaa = 'aa'
    // 目前该方法仅在提案中 没有实行,这样写运行会出错
    // static aaa = 'aa';

    static say1(){
        console.log('静态方法,仅类可以调用,实例不可使用,也拿不到类的数据')
    };

    static say2(){
        console.log('静态方法可以调用类的另外静态方法,实例方法不行')
        this.say1()
    };
    sayname(){
        console.log('my name is '+this.name)
    }

}
Pf.aaa = 'aa'
const a = new Pf('panfeng',22)
a.sayname()
Pf.say1()
Pf.say2()

console.log(Pf.aaa)

运行新建js文件,node

个人浅见,望指正。
(学习随笔 4.15)

猜你喜欢

转载自blog.csdn.net/qq_39305051/article/details/89309936