ES6 类的属性和方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>类的属性和方法</title>
</head>
<body>
<script>
// 声明一个类
class People{
// 实例属性,也叫实例属性
head = 1;
// 私有属性(加_),也叫实例方法
_mouth = 1;
// 静态属性
static nose = 1;
// 原型方法
talk(){
console.log('我会说话');
}
// 私有属性
_eat(){
console.log('会吃饭'); //会吃饭
}
// 静态方法
static sing(){
console.log('会唱歌');
}
// 构造函数
constructor(name,sex){
// 公有属性
this.name = name;
this.sex = sex;
// 共有方法
this.talk = function(){
console.log('会走路');
}
// 调用私有方法
this._eat();
// 调用私有属性
this._mouth;
}
}
let jack = new People('捧场王','男');
console.log(jack);
/*
head: 1 //声明在构造函数外
name: undefined //声明在构造函数内
sex: undefined
talk: ƒ ()
_mouth: 1
实例属性/方法
私有属性/方法
公有属性/方法
原型属性
没有继承 私有方法 和 静态属性
*/
// 实例属性
console.log(jack.head,jack.name,jack.sex); // "捧场王" "男"
// 实例方法
jack.talk(); // 会走路
// 原型方法
jack.talk(); // 会走路
// 静态方法
People.nose;
console.log(People.nose); //1
// 静态方法
People.sing();
/*
实例方法(公有方法):
在类的构造函数中,用this绑定的方法,是这个类的实例方法,每个实例化的对象都拥有实例方法
静态方法:
使用static声明,只能由类本身来访问。
原型方法:
直接在类里声明,不需要加关键词,每个实例化出来的对象都可以调用。
私有方法:
使用 _ 声明,可以在构造函数内被使用
*/
</script>
</body>
</html>