ES6新增的静态方法

静态方法
类中 有这样的 的一种方法, 我们都知道类的实例是通过new来产生的,并且类的实例对象的constructor 指向 类
类中的所有方法都是被类的实例对象继承的
但是 当 类中的方法 前面加上 static 的时候, 就说明 这个方法没办法通过 new 创建实例对象 进行调用, 只能通过类名点的形式调用, 这种方法我们称为 静态方法

class Foo {  
    static classMethod() {  
        return 'hello';  
    }  
}  
Foo.classMethod() // 'hello'  
var foo = new Foo();  
foo.classMethod()  
// TypeError: foo.classMethod is not a function  

类的静态方法可以被继承

**class Foo {  
    static classMethod() {  
        return 'hello';  
    }  
}  

class Bar extends Foo {}
Bar.classMethod(); // ‘hello’**
通过 extends 就可以继承
除了 以上的继承方式, 还可以 通过对象super进行调用

**Class Foo{
Static  classMethod(){
			return ‘hello’;
}
}
Class jicheng extends Foo{
  Static class1{
  	Return super.classMethod();
}
Jicheng.class1();**

静态属性
静态属性指的是 Class 本身的属性, 即Class.propname, 而不是定义在实例对象( this) 上的属性。
Class 内部只能有静态方法不能有静态属性 因此

**class Foo {}  
Foo.prop = 1;  
Foo.prop // 1**  

我们通过上面的方法为Foo定义一个静态的属性
在ES7中 新增的 类内部可以有实例属性

class MyClass {  
    myProp = 42;  
    constructor() {  
        console.log(this.myProp); // 42  
    }  
}  

在上面代码中 ,我们可以通过类的实例来进行访问 在以前我们只能通过在constructor中创建实例属性
现在 不用这么麻烦了

class ReactCounter extends React.Component {  
    state = {  
        count: 0  
    };  
}  

下面就是新的 可以在 类的内部创建静态属性

class Foo {}  
Foo.prop = 1;  
//  新写法  
class Foo {  
    static prop = 1;  
}  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值