只是一些学习记录,害怕丢掉,暂存,补充完善整理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().'属性名'