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跑起来多数有点问题。javascript
综合各篇文章和官方资料,如今这个写法应该足够简单(重要的只有那三行注释代码),也提到了如何传参和复写,放到chrome控制台里就能跑起来。java
参考:chrome
Object.create()this