码迷,mamicode.com
首页 > 其他好文 > 详细

原型式继承

时间:2016-08-05 06:30:22      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:

原型式继承是道格拉斯·克罗克福德在 2006年写了一篇文章,题为 Prototypal Inheritance in JavaScript (JavaScript 中的原型式继承)中指出的。他给出了一下函数

function object(o){
   function f(){}
   f.prototype = o;
   return new f();
}

然后再创建一个临时性的构造函数,再讲构造函数传入object()中

技术分享

 

这种原型式的继承,必须要有一个对象(person)作为另一个对象的基础,然后再根据需求进行修改,于是把person传入到了object(),然后返回一个新对象,这个新对象将person作为原型。yetAnotherPerson 和anotherPerson 都共享了引用性属性friends

 

ECMAScript 5通过新增 Object.create()方法规范化了原型式继承。这个方法接收两个参数:一 个用作新对象原型的对象和(可选的)一个为新对象定义额外属性的对象。在传入一个参数的情况下, Object.create()与 object()方法的行为相同。 

这是一个参数的

技术分享

 

这是2个参数的

 技术分享

技术分享

 

支持性

IE9+、Firefox 4+、Safari 5+、Opera 12+和 Chrome

在没有必要兴师动众地创建构造函数,而只想让一个对象与另一个对象保持类似的情况下,原型式 继承是完全可以胜任的。不过别忘了,包含引用类型值的属性始终都会共享相应的值,就像使用原型模 式一样。 

 

参考自JavaScript 高级程序设计

 

原型式继承

标签:

原文地址:http://www.cnblogs.com/lijinwen/p/5739010.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!