静态成员
静态成员创建
- 静态成员包括静态属性和方法,它不属于实例化的对象,使用时也不需要实例化
- 需要修饰符
static
修饰
class person{
static age = "我是静态属性"//静态属性
constructor(name){
this.name = name
}
//静态方法
static fn(){
console.log("我是静态方法")
}
}
console.log(person.age)
person.fn()
输出结果
我是静态属性
我是静态方法
私有成员
私有成员创建
私有成员包括私有属性和私有方法
class person{
#age = "我是私有属性"//静态属性
constructor(name){
this.name = name
}
//私有方法
#fn(){
console.log(`我是私有方法,${this.#age}`)
}
func(){
this.#fn()
}
}
let res = new person("张三")
res.func()
console.log(person.#age)
person.#fn()
我是私有方法,我是私有属性
报错:Uncaught SyntaxError: Private field '#age' must be declared in an enclosing class
私有属性和方法只能在内部调用,外部不能调用私有成员
ES6属性设置
class person{
height = "178cm"//方式二
constructor(name,age){
this.name = name//方式一
this.age = age
}
get myage(){//方式三
console.log("获取到了age")
return this.age
}
set myage(newage){
console.log("设置了age")
this.age = newage
}
}
let zhangsan = new Person("张三","18");
console.log(zhangsan);
输出结果
{height: '178cm', name: '张三', age: '18'}
万万语录
2022.11.21
想把吴老师大门牙敲掉,我写烦了他眦个大牙笑我