Javascript担任汇总
本文是我在看完《Javascript 王者回来》后的清算总结,文章具体章节在 第21章 P537
担任一样平常要实现以下三层寄义: 1)子类实例可以共享父类的要领; 2)子类可以包围父类的要领可能扩展新的要领; 3)子类和父类都是子类实例的范例。 一、结构担任法 子类中挪用父类的结构函数来维护的,该担任法能实现多重担任,但只能担任父类的共有要领,无法担任静态要领,并且不能用instanceof来验证实例。 function a(){ function b(){ a.prototype.fuck=function(){ var oB=new b(); 二、原型担任法/经典担任法 该担任法是通过复制已经存在的原型工具来实现举动重用,让工具实例共享原型工具的属性。支持多重担任,担任原型静态要领,能用instanceof来验证实例。 function a(){ function b(){} a.prototype.fuck=function(){ a.prototype.z=123; var oB=new b(); 三、实例担任法/寄生结构函数模式 结构法不能担任范例的静态要领,原型担任得不完美(某些焦点工具的不行列举要领不能担任),而实例担任法能对原生焦点工具可能DOM工具举办担任,它通过在范例中结构工具并返回的步伐来实现担任,因此instanceof验证会是false,不支持多重担任。 function a(){ var obj=new a(); 四、拷贝担任法 该要领通过拷贝基类工具的全部可列举属性和要领来模仿担任,因此它可以模仿多担任,但不能列举的就无法担任;它可以担任父类的静态要领; function a(){ function b(){ var oB=new b(); alert(oB instanceof a); // false 五、殽杂担任法 顾名思义就是把上面几种担任法综合起来,取长补短,让担任更完美。常见的有 结构+原型担任:伪经典担任 function a(){ function b(){ b.prototype=new a(); var oB=new b(); 六、各类担任法的优弱点
文章来历:http://blog.sina.com.cn/s/blog_74d6cedd0100z7z3.html (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |