javascript代码实例教程-javascript面向对象――prototype属性(原型属性)

发布时间:2018-12-31 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-javascript面向对象――prototype属性(原型属性)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。

定义说明: 

1、每一个函数都具有一个prototype属性,此属性是一个指针,可以指向一个对象,而此对象将会被由构造函数创建的实例化对象所共享,也就是说实例化对象会继承此对象。

2、prototype原型链属性是构造函数的属性,而非实例化对象的属性。

3、prototype原型链属性指向谁?prototy指向的是一个对象,prototype原型属性与实例对象的创建与否没有关系,它在对象创建之前就已经纯在了。在构造函数创建之后,prototy原型属性就相对应的创建出来,但是它是存在于内存中。

问: 实例化对象是怎么指向并继承prototype原型属性指向的那个对象的呢!?

答: 原来其实通过构造函数来创建的实例化对象中会有一个内部属性[[Prototype]],它是一个指针,指向构造函数的原型(prototype)指向的对象,也就是那个存在于内存中的对象。

我们来看看下图:

javascript代码实例教程-javascript面向对象――prototype属性(原型属性)

 

上图中代码部分如下: function antzone(name,age){ this.webname = name; this.age = age; } antzone.prototype.getname = function () { return this.webname; } var oantzone = new antzone("zhang",3); alert(oantzone.getname()); //zhang

这上图中左右两边分别指的是什么呢!? 左边其实就是属性,右边是属性值。

图与代码配合解析: A、解析: 当我们创建出名为antzone的构造函数的时候相对应的原型也就上山图中的antzone prototype就出现了,它是存在于内存中的,我们可以使用console.info(antzone.prototype)方法打印出来,在谷歌浏览器的控制台中看看打印的结果。显示的有两个属性constructor与属性getname,getname属性是我们设置的antzone.prototype.getname = function () {return this.age;},但是constructor属性是什么呢!?原来constructor是构造函数,哦!现在我们应该能够明白原来我们所创建的名为antzone的构造函数中的所有属性以及属性值都是保存在原型属性prototype所指向的对象中。

B、那么保存在prototype原型中的属性是什么? 其实保存在原型中的东西就是: 1、constructor构造函数,function antzone(name,age){this.webname = name;this.age = age}中的属性以及属性值。 2、antzone.prototype.getname = function () {return this.webname};通过原型链创建的属性以及属性值。

C、那么谁又会继承prototype原型中的属性以及属性值呢!? 能够继承prototype原型中的属性以及属性值的是用构造函数创建出来的实例化对象,也就是上面实例中的 var oantzone = new antzone("zhang",3); 这种是赋值传参,通过 [[Prototype]]属性 来指向prototype原型,从而达到继承的效果, [[Prototype]]属性: 通过构造函数来创建的实例化对象中会有一个内部属性[[Prototype]],它是一个指针,指向构造函数的原型(prototype)指向的对象(上面有所讲解)。

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的javascript代码实例教程-javascript面向对象――prototype属性(原型属性)全部内容,希望文章能够帮你解决javascript代码实例教程-javascript面向对象――prototype属性(原型属性)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: