【ES6】关于class

只是一些学习记录,害怕丢掉,暂存,补充完善整理ing

class F {
    static name = 'father';     
    //静态属性:class 本身的属性,即直接定义在类内部的属性( Class.propname ),不需要实例化。 ES6 中规定,Class 内部只有静态方法,没有静态属性。
    static f_s = function() {	//静态方法 只能通过类名调用,不会被实例继承
        console.log('静态方法');
    }

    constructor(name, age) {	//构造函数 创建类的实例化对象时被调用
        this.name = name;
        this.age = age;
        this.f_c = function() {
            console.log('构造器中');
        }
    }
       
    f() {           			//成员方法--声明在原型中
        console.log("成员方法");
    }
}

let foo=new F('chailo',12);		//实例化
console.dir(F);					//运行看控制台
console.dir(foo);				//运行看控制台

class S extends F {
    constructor(name, age, sex) {
        super(name, age);        //继承
        this.sex = sex;
    }
}
let s = new S('fjh', 20, '男');
console.log(s.f());				//成员方法
console.log(s.f_c());			//构造器中
console.log(s.f_s());			//报错,∵静态方法 只能通过类名调用
console.log(F.f_s());			//静态方法

9.27--今天遇到一个问题

静态方法中是否可以访问成员属性,为什么?

答:不能,

        静态属性是class类自身的属性

        实例属性是指类的实例的属性,调用时使用 new Foo().'属性名'

猜你喜欢

转载自blog.csdn.net/qq_51315315/article/details/120497311