前言
学习class时,发现父类class里定义的static 函数,会被其子类所继承,因为class是一个语法糖,本质还是用构造函数来实现的,所以就思考能不能用构造函数来实现这一功能
先来瞅瞅class
class Father {
constructor(name) {
this.name = name
}
static sayHi() {
console.log('hi')
}
}
class Son extends Father {
constructor(name) {
super(name);
}
}
Father.sayHi(); //hi
Son.sayHi(); //hi
console.log(Father===Son.__proto__); //true
这里很明显father函数对象被赋予了son函数的__proto__,所以son能通过原型链使用sayHi方法
康康用构造函数怎么弄
function Father(){}
function Son(){}
Father.sayHi = ()=>{
console.log('hi')
}
Son.__proto__ = Father
Son.sayHi() //hi