es5 的类继承

原创
2016/11/28 17:13
阅读数 156
function Shape(x){
 this.x = x;
}
Shape.prototype.show = function(){ console.log("Father X:",this.x || "")};

function Rectangle(x){
 Shape.call(this,x); // 类似面向对象语言的super()方法,可传多个参数
}
Rectangle.prototype = Object.create(Shape.prototype); // 作用类似于面向对象的extends关键字
Rectangle.prototype.show = function(){ console.log("Son X:",this.x || "")};// 复写父类方法
new Rectangle(12).show();

网上关于es5类继承的资料,原理倒是洋洋洒洒的一大堆,还给了各种继承写法,但demo跑起来多数有点问题。

综合各篇文章和官方资料,现在这个写法应该足够简单(重要的只有那三行注释代码),也提到了如何传参和复写,放到chrome控制台里就能跑起来。

参考:

Object.create()

Function.prototype.call(this)

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部