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("张三");