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