
不能通过实例之后的对象变量来访问
只能通过类名来调用
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
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)