前端关于class上静态属性

前端关于class上静态属性,第1张

class上的 静态属性 static

不能通过实例之后的对象变量来访问
只能通过类名来调用

 		class Person {
            static names = 'zs'
            show() {

            }
        }

        let p = new Person()
        console.log(Person.names); // zs
        console.log(p.names);  // undefined

静态方法里面的this只能访问静态属性

		class Person {
            static names = 'zs'
            age = 18
            static show() {
                console.log(this.names); // zs
                console.log(this.age); // undefined
                console.log(Person.age); //  undefined
                console.log(Person.names); // zs
                console.log(Person === this); // true
            }
        }
        Person.show()

类里面方法的this 是不等于 类名的
原型上的方法是不能访问静态的方法和属性

		class Person {
            static names = 'zs'  // 静态上的属性
            show() {  // 这个是原型上的方法
                console.log(Person.names); // zs
                console.log(this.names); // undefined
                console.log(this === Person); // false
            }
        }

        let p = new Person()
        p.show()
1.外部如何调用TS类的静态成员: 类名直接调用静态成员 2.TS类的一个静态方法如何调用其他的静态成员: 使用 this 来或者静态成员 其实也可以通过 类名点调用 3.静态方法是否可以访问实例方法、属性,反过来呢? 都不可以 4.对象变量(实例化的对象)是否可以访问静态成员? 不能 5.一个静态方法改变了某个静态属性,其他静态方法或类外部任何地方访问这个属性都会改变。

第5个解答 下面代码为例, 可以看打印 结果
index.ts 文件

export default class MyLocalStorage {
    private static num: number = 0
    public static setTotal() {
        this.num += 3
    }
    public static getTotal() {
       return  this.num
    }
}

Test.ts 文件

import MyLocalStorage from "./index";
console.log('第一次获取', MyLocalStorage.getTotal());  // 0
MyLocalStorage.setTotal() 

import total from "./Test2";
console.log(total); // 3

console.log('第二次获取', MyLocalStorage.getTotal()); // 3
MyLocalStorage.setTotal()

console.log('第三次获取', MyLocalStorage.getTotal()); // 6

Test2.ts 文件

import MyLocalStorage from "./index";

let total = MyLocalStorage.getTotal()
export default total

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/939470.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-17
下一篇2022-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存