【JS】静态属性和方法

静态方法和属性:
            1.静态方法:
                将一个方法作为整体赋值给类,该方法作为类的方法使用,而不是某个实例的方法使用,使用static关键字修饰。
class MyClass {
    static staticMethod() {
        console.log(this === MyClass); //true, this 就是类构造器MyClass自身
    }
}
// 类似于:
// class MyClass {}
// MyClass.staticMethod = function () {
//     console.log(this === MyClass);
// }

MyClass.staticMethod()
// 不能作为实例的方法
let c = new MyClass()
c.staticMethod() // Uncaught TypeError: c.staticMethod is not a function
            2.静态属性
                在常规的类属性前加上static关键字就是静态属性
                同样的只作为类自己的属性使用
 class MyClass {
     static staticProp = 'MyClass'
 }
// 类似于:
// class MyClass {}
// MyClass.staticProp = 'MyClass'

console.log(MyClass.staticProp); // 'MyClass'




let a = new MyClass()
console.log(a.staticProp); // undefined 
            3.继承静态属性和方法
                extends使得 Child.prototype == Parent
                所以子类可以访问父类的静态方法和属性
class Parent {
    static staticProp = 'parent static prop'
    static test(){
        console.log('static parent method');
    }
}

class Child extends Parent{}

console.log(Child.staticProp); // 'parent static prop'
Child.test() // 'static parent method'

 

 

 

posted @ 2022-10-29 11:00  Ahoge的笔记本  阅读(315)  评论(0编辑  收藏  举报