针对上一节:javascript继承之数据绑定的假设,做如下实验:
prototype模式
先运行一段代码:
function Animal(){ this.species = "动物"; } function Cat(name,color){ this.name = name; this.color = color; } Cat.prototype = new Animal(); alert("the first cat's prototype is : "+Cat.prototype.constructor); //the first cat's prototype is : function Animal(){ // this.species = "动物"; // } Cat.prototype.constructor = Cat; alert("the second cat's prototype is : "+Cat.prototype.constructor); //the second cat's prototype is : function Cat(name,color){ // this.name = name; // this.color = color; // }
Cat.prototype = new Animal();我们将Cat的prototype对象指向一个Animal的实例。
Cat.prototype.constructor = Cat; 它相当于完全删除了prototype 对象原先的值,然后赋予一个新值。
但是,这是什么意思呢?
原来,任何一个prototype对象都有一个constructor属性,指向它的构造函数。
如果没有"Cat.prototype = new Animal();"这一行则Cat.prototype.constructor是指向Cat的;加了这一行以后,Cat.prototype.constructor指向Animal。
更重要的是,每一个实例也有一个constructor属性,默认调用prototype对象的constructor属性。
相关推荐
浅析Javascript原型继承,浅析Javascript原型继承
理解Javascript原型继承原理
Javascript原型继承Javascript原型继承Javascript原型继承
javascript原型继承,prototype的使用,可以像java一样继承
更有甚者,JavaScript属于使用原型式继承(我们会向你证明这其实是一个极大的优点)的少数语言之一。得益于这种语言的灵活性,你既可使用标准的基于类的继承,也可使用更微妙一些(但也可能更有效一些)的原型式继承...
浅析javascript原型继承机制,浅析javascript原型继承机制
说好的讲解JavaScript继承,可是迟迟到现在讲解。废话不多说,直接进入正题。 既然你想了解继承,证明你对JavaScript面向对象已经有一定的了解,如还有什么不理解的可以参考《面向对象JS基础讲解,工厂模式、构造...
JavaScript中的原型继承基础学习教程_.docx
JavaScript中基于原型的继承的实现与分析.pdf
浅析JavaScript实现基于原型对象的“继承”.pdf
javascript原型继承机制参考.pdf
javascript原型继承机制借鉴.pdf
javascript原型继承机制归类.pdf
详解JavaScript中基于原型prototype的继承特性_.docx
JavaScript中的原型和继承详解(图文)_.docx
面向对象概念(对象封装,各种继承,闭包原理,this作用域等)介绍清晰易懂
JavaScript 不包含传统的类继承模型,而是使用 prototypal 原型模型。 虽然这经常被当作是 JavaScript 的缺点被提及,其实基于原型的继承模型比传统的类继承还要强大。实现传统的类继承模型是很简单,但是实现 ...
javascript原型继承机制[整理].pdf
这个对象称之为原型对象,简称原型。 6.6.1 原型 示例 function Student(){} console.log(typeof(Student.prototype)); //object Student函数的prototype属性指向的对象,就是Student的原型对象。 在利用构造函数...
JavaScript继承的三种方法实例 继承 继承: 首先继承是一种关系,类(class)与类之间的关系,JS中没有类,但是可以通过构造函数模拟类,然后通过原型来实现继承。 继承也是为了数据共享,js中的继承也是为了实现...