通过es5 实现 类继承 通过super 给父级传参的效果
先看看 原型继承
function es5parent(name, age) { this.name = name; this.age = age; } es5parent.prototype.say = function() { console.log(this.name, this.age, this.sex); } function es5child(sex) { this.sex = sex; } es5child.prototype = new es5parent('李四',21); es5child.prototype.say1 = function() { this.say(); } const es5obj = new es5child('女'); es5obj.say1(); //输出 李四 21 女
这里 实例是无法像父构造函数传参的,在实例对象之前就已经调用了父函数
再看看 类继承, 是可以通过创建实例化对象的时候 把参数通过super传递到父类
class parent { constructor(name, age){ this.name = name; this.age = age; console.log(name, age); // 输出 张三 23 } say() { console.log(this.name, this.age, this.sex); } } class child extends parent { constructor(name, age, sex) { super(name, age); this.sex = sex; } say1() { this.say(); } } const obj = new child('张三', 23, '男'); obj.say1(); // 输出 张三 23 男
es5 通过call 实现
function es5parent(name, age) { this.name = name; this.age = age; } es5parent.prototype.say = function() { console.log(this.name, this.age, this.sex); } function es5child(name, age, sex) { this.sex = sex; es5parent.call(this, name, age); } es5child.prototype = new es5parent(); es5child.prototype.say1 = function() { this.say(); } const es5obj = new es5child('李四', 21, '女'); es5obj.say1(); // 李四 21 女
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律