从品牌网站建设到网络营销策划,从策略到执行的一站式服务
小编给大家分享一下JavaScript借用构造函数继承的方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
我们提供的服务有:网站设计制作、网站建设、微信公众号开发、网站优化、网站认证、未央ssl等。为千余家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的未央网站制作公司
借用构造函数继承是在子类型构造函数的内部调用超类型构造函数,通过使用apply()和call()方法
function girlFriend(){ this.girls = ['chen','wang','zhu']; } function Person(){ girlFriend.call(this,20); } var wang = new Person(); var zhu = new Person(); wang.girls.push('zhang'); console.log(wang.girls); //(4) ["chen", "wang", "zhu", "zhang"] console.log(zhu.girls); //(3) ["chen", "wang", "zhu"]
通过以上代码,我们可以发现,在原型链继承中出现的问题不再出现了,这个超类不会被子类所创建的实例共享了。
借用构造函数继承的优势是可以在子类型构造函数中向超类型构造函数传递参数,例如以下代码:
function SuperType(name){ this.name = name; } function SubType(){ SuperType.call(this,"nick"); this.age = 20; } var instance = new SubType(); console.log(instance.name); //nick console.log(instance.age); //20
借用构造函数继承的问题:用构造函数继承并不能继承到超类型原型中定义的方法,例如以下代码,在girlFriends构造函数的原型中添加sayHello方法:
girlFriend.prototype.sayHello = function(){ console.log('hello'); }
继承它的子类构造函数的实例并不能调用到这个sayHello方法,返回的值是undefined
看完了这篇文章,相信你对“JavaScript借用构造函数继承的方法”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图