深入理解JavaScript系列(45):代码复用模式(避免篇)详解
介绍
任何编程都提出代码复用,否则话每次开发一个新程序或者写一个新功能都要全新编写的话,那就歇菜了,但是代码复用也是有好要坏,接下来的两篇文章我们将针对代码复用来进行讨论,第一篇文避免篇,指的是要尽量避免使用这些模式,因为或多或少有带来一些问题;第二排是推荐篇,指的是推荐大家使用的模式,一般不会有什么问题。
模式1:默认模式
代码复用大家常用的默认模式,往往是有问题的,该模式使用Parent()的构造函数创建一个对象,并且将该对象赋值给Child()的原型。我们看一下代码:
functioninherit(C,P){ C.prototype=newP(); }
//父构造函数 functionParent(name){ this.name=name||'Adam'; } //给原型添加say功能 Parent.prototype.say=function(){ returnthis.name; }; //Child构造函数为空 functionChild(name){ }
//执行继承 inherit(Child,Parent);
varkid=newChild(); console.log(kid.say());//"Adam"
varkiddo=newChild(); kiddo.name="Patrick"; console.log(kiddo.say());//"Patrick"
//缺点:不能让参数传进给Child构造函数 vars=newChild('Seth'); console.log(s.say());//"Adam"