0
点赞
收藏
分享

微信扫一扫

js中class的使用

新鲜小饼干 2022-01-06 阅读 74

1、如何创建一个类

class User{} //第一种
let User=class{} //第二种

2、构造函数的使用与参数初始化

class User{
    constructor(name){
        this.name=name;
    }
}

3、静态属性的定义与使用

class request{
	static host="http://127.0.0.1";
	postBody(url){
		return request.host+`/${url}`
	}
}
let api = new request();
api.postBody("test");

3、静态方法的定义与使用

class User{
	static show=function(){}
	show(){
	}
}
User.show();//和下面的是不一样的 
let user =new User();
user.show();

4、类中使用访问器(get 和set方法)

class User{
    constructor(name) {
    	//定义_属性 一是为了证明是私有属性(不建议直接编辑或修改)  二是如果起名和set 属性 一样会陷入死循环
        this._name = name;
    }
    set name(val) {
        this._name = val
    }
    get name() {
        return this._name
    }

}
let user =new User("张三");
cnsole.log(user.name)

5、创建私有属性
第一种:命名规则保护
通过定义“_属性"的方式,来告知用户此属性为私有属性。比较随缘,如果用户乱来也没办法

class User{
    constructor(name) {
    	//定义_属性 一是为了证明是私有属性(不建议直接编辑或修改)  二是如果起名和set 属性 一样会陷入死循环
        this._name = name;
    }
}
let user =new User("张三");
//依然可以使用_name来修改属性值
user._name="李四"

第二种:使用symbol

let NAME = Symbol();
 class User {
     constructor(name) {
         this[NAME] = name;
     }
 }
 let user = new User("张三");
 console.log(user);
 console.log(user[Symbo()]);//无法取值

第三种:使用私有属性private(#)

class User {
    #name = "" //私有变量
    constructor(name) {
        this.#name = name;
    }
    //私有方法
    #check = () => {

    }
}
let user = new User("张三");
举报

相关推荐

0 条评论