// 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)