ES6中新增了static关键字,static方法不能被实例继承,只能通过类来调用
class Super{
static test(){
console.log('Super test');
}
}
let sub = new Super;
sub.test() // error
Super.test()
但是子类可以通过extends来继承父类中的方法
class Super{
static test(){
console.log('Super test');
}
}
// let sub = new Super;
// sub.test() // error
// Super.test()
class sub extends Super{
}
sub.test()
我想知道ES6中为什么会引入static关键字,他们有什么应用场景?原型,静态,实例上的方法会有什么不同?希望大佬解答一下哇,感谢!!!
在
Class的基本语法
章节的8.静态方法
以及9.静态属性
部分 阮一峰大佬说的算比较详细了。总的来说就是按照传统来说定义静态方法主要是规避两个模块调用同名函数的情况。
同时只需要通过
类名.静态方法名
就可以访问,不需要创建实例对象去使用,带来便利的同时还能够提升性能(同一块内存)。