学习class的人肯定是有一定基础了,那我也是。哈哈,所以关于class的东西我就类似于流水账的方式大概写一下常用的东西。
class MyClass{
// 构造函数
constructor(prop){
// 属性初始化
this.prop = prop
}
// getter
get prop(){
console.log('getter');
return 'getter';
}
// setter
set prop(value){
console.log('setter' + value);
}
// 成员方法
sayClass(){
console.log(this.prop);
}
// 静态方法
static sayHi () {
console.log("Hi~");
}
}
let inst = new MyClass();
inst.prop
// inst.prop = 123;
上述代码中生命了一个叫'MyClass'的类。它里面包括构造函数constructor,getter方法,setter方法,成员方法,静态方法。下面依次说这些方法的怎么使用。
构造函数constructor
constructor方法是类的默认方法,通过new命令生成对象实例时,自动调用该方法。一个类必须有constructor方法,如果没有显式定义,也不会报错。但是会默认添加一个空的constructor方法。一般我们用constructor来初始化类的属性。
constructor(prop){
// 属性初始化
this.prop = prop
}
当然属性的声明也可以写在constructor外面,跟方法同级。
class MyClass{
prop = '默认值'
// 构造函数
constructor(prop){
// 属性初始化
this.prop = prop
}
sayHi(){
console.log('hi');
}
}
let inst = new MyClass();
inst.prop
// inst.prop = 123;
getter/setter
两个必须搭配使用,单独写一个会报错。用过vuex等状态管理的应该都明白它的意思。其实就是一个拦截该属性的存取行为的方法。
static
静态方法。跟普通方法不同的是,只要该方法只能通过class调用,new的实例不会继承该方法。
MyClass.sayHi() // 对
let inst = new Myclass();
inst.sayHi() // 错
成员方法
不用多说了。
网友评论