继承模式

202 阅读1分钟

1、传统模式

过多的继承了没用的属性

2、借用构造函数   call/apply

不能继承构造函数的原型    prototype

每次构造函数都要多走一个函数

3、共享函数  公有原型

他们指向同一个房间,不能随便修改。

        Father.prototype.lastName = 'Deng'

        function Father() {

        }

        function Son() {

        }
         //公有原型 lastName
        Son.prototype = Father.prototype


4、圣杯模式

 Father.prototype.lastName = 'Deng'        function Father() {        }        function Son() {        }        // Son.prototype = Father.prototype

        //用圣杯模式F函数 作为中间层        function F() {}        F.prototype = Father.prototype;        Son.prototype = new F();

this

  1. 函数预编译过程中   this----(指向) window
  2. 全局作用域里  (GO)this---- (指向)window
  3. call/apply 可以改变函数运行时的this指向
  4. 谁调用方法  this就指向谁

    obj.fun()

    fun()                    <----this指向obj