原型 原型链 call/apply 继承模式

原型   原型链  call/apply  继承模式
原型   原型链  call/apply  继承模式
 构造函数的三段式
隐式生成对象this={},生成的this并不是空对象,而是有__proto__:Person.prototype,指向当前引用的原型。
prototype(原型)
会先找自己有没有这个属性,如果没有会沿着__proto__指向的寻找有没有。
可以修改__proto__的指向。
方法里的this指向:谁调用此方法,就指向谁。
绝大多数对象的最终都会继承自object.prototype,或者null
可正常计算的范围    小数点前16位后16位。


方法名.call()  会改变方法内部this的指向,指向第一个参数,后面的参数是正常传实参。
apply,第一个参数同样是指向的对象,但实参只能传一个数组形式的。
即:
    call需要把实参按照行形参的个数传进去。
    apply需要把实参放进一个arguments传进去。

传统形式 (原型链) :会过多继承没用的属性。        
借用构造函数:不能继承借用构造函数的原型。每次构造函数都要多走一个函数。
共享模式:不能随意改动自己的原型。
圣杯模式:
   function inherit(Target,Origin){
        function F(){};
        F.prototype = Origin.prototype;
        Target.prototype = new F();
        Target.prototype.constuctor = Target;
        Target.prototype.uber = Origin.prototype;
   }