摘要:实例1: 这个是利用call()和SuperType.prototype.constructor = SubType;//把上边的两个函数合并函数公用一个构造函数
阅读全文
摘要:实例1: 使用寄生式继承来为对象添加函数,会由于不能做到函数服用而减低效率;这一点与构造函数模式类似; object();只要传进去的是一个对象,就会返回相同的引用
阅读全文
摘要:实例1: 借助原型可以基于已有的对象创建新的对象; 但是P1和P2是两个独立的对象,原型是一样的;
阅读全文
摘要:借用values对象完成构造函数,返回的对象和构造函数或构造函数的原型没有关系,所以instanceof()函数不能确定对象类型,所以这种模式不要使用
阅读全文
摘要:上边和下边不一样,下边会断开以前的原型的指针,因为{}就是一个对象
阅读全文
摘要:function Person(){ this.name = 'zhangsan'; Person.prototype = { age:23, job:'worke' } };var P1 = new Person();console.log(P1);
阅读全文
摘要:语法: 返回一个新的对象的指针 proto:对象会被作为新创建的对象的原型 [propertiesObject]:对象,自定义的一些自己的属性; 实例1:
阅读全文
摘要:这个是讲得构造函数返回值得问题: 如果存在返回值则检查其返回值是否为引用类型,如果为非引用类型,如(string,number,boolean,null,undefined),上述几种类型的情况与没有返回值的情况相同,实际返回实例化的对象 所以构造函数P返回了一个引用值,所以改变了原有的引用指向;
阅读全文
摘要:function F(){}; 中间函数 F.prototype = Origin.prototype; Targrt.prototype = new F();或者 类似的方法:原型继承 闭包形式
阅读全文
摘要:由于prototype指向到同一个对象,所以无论谁改变了内在属性, 都会统一改变; 不能保持对象原型的独立性
阅读全文
摘要:缺点: 每一次继承都要调用两个函数 而且不能继承Person的原型内的属性和方法
阅读全文
摘要:Cat.prototype为什么会失效: 因为{}是一个新的对象,所以Cat.prototype的旧原型链就会断掉
阅读全文
摘要:为什么cat1.shout会找不到因为: Cat.prototype.shout = function(){ console.log(this.vioce); } 已经为Cat.prototype 指向了一个对象{ shout = function(){ console.log(this.vioce
阅读全文
摘要:因为给原型链的的顶端添加方法,所以所有的对象都会添加此属性和方法
阅读全文
摘要:Car为构造函数; prototype为Car构造函数的一个属性(一个对象),为了创建共有的属性和方法; 但是构造函数不能更改原型内属性和方法,必须调用Car.prototype进行修改 Car.constructor会返回构造函数
阅读全文