1、基于原型链继承
1 | function Foo() { this.y = 2; } |
2、js继承的实例
1 | function Person(name, age) { |
解析: Person.prototype
是让子类共享父类的方法,若没有prototype,则Student继承的时候,永远调用的都是父类的方法;Object.create
主要是重新实例化一个对象,并让Student的prototype指向这个对象,若不重新实例化,则给Student创建新方法的同时也会给Person.prototype创建对应的方法;Student.prototype.constructor = Student
,会让Student的构造函数指向自身,否则指向父类的constructor
3、改变prototype
1 | Student.prototype.x = 101; |
解析: 当我们在原型上创建新的属性的时候,影响的是已创建的对象;但当我们将原型指向新的对象,则无法影响已创建的对象,反而会影响新的实例化对象。
4、内置构造器的prototype
1 | Object.prototype.x = 1; |
5、实现继承方式
1 | function Person() {} |
6、模拟重载
1 | function Person() { |
7、调用基类的方法
1 | superClass.prototype.methodName.call(this, arg0, arg1, arg2); |
8、链式调用
1 | function ClassManager() { |
9、模块化
1 | // CASE 1 |