关于js继承中"prototype模式"的constructor重定向浅析

本文探讨了JavaScript中的原型继承模式,特别是针对constructor属性的重定向问题。作者在阅读阮一峰的网络日志后,对其理解进行了个人的阐述和深入思考,并在实践中发现了与教程不同的结果,提出自己的见解。
摘要由CSDN通过智能技术生成

近来在看阮一峰的网络日志,确实写得好,非常通俗易懂,对我们这些小白受益匪浅!

JavaScript的继承一直是一大难点,初涉会花费非常多的时间,我也如此。在摸索了许多天之后,逐渐有了一些头绪。

但是关于constructor属性重定向这个问题上,我还是存在疑问。

在测试过程中,发现测试的结果与阮一峰老师的结论有些出入,在此记录。

首先粘上阮一峰老师的这篇博文:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance.html

同时为了方便阅读,在此将部分内容摘抄:

1、阮一峰老师的"prototype模式"讲解

现在有一个"动物"对象的构造函数,以及一个"猫"对象的构造函数。
function Animal(){
  this.species = "动物";
}
function Cat(name,color){
  this.name = name;
  this.color = color;
}
要使“猫”继承“动物”,使用prototype模式的话,就要这样:
"猫"的prototype对象,指向一个Animal的实例,那么所有"猫"的实例,就能继承Animal了。
Cat.prototype = new Animal();
Cat.prototype.constructor = Cat;
var cat1 = new Cat("大毛","黄色");

alert(cat1.species); // 动物
代码的第一行,我们将Cat的prototype对象指向一个Animal的实例。
Cat.prototype = new Animal
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值