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控制台里就能跑起来。
参考: