博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js原型链实现
阅读量:5280 次
发布时间:2019-06-14

本文共 640 字,大约阅读时间需要 2 分钟。

 温故而知新:

function a(x,y){
this.x=x;this.y=y;} //定义一个函数,当构造函数用(正经从程序用大写哈!)

  原型对象上添加属性

a.prototype.ayuanxing="a原型属性";

 new 一个对象看看咯:

 

同样的,定义一个b函数:

function b(z){
this.z=z};b.prototype.byuanxing="b原型属性";

同样看看new 一个b对象看看:

ok,现在有两个同等的类a,b;如何让他们两个能够通过原型链的连接在一起?

b.prototype=new a(); //将a的实例对象作为b的原型对象

再new 一个b对象看看:

能得出什么?

1:b的原型对象已经变成了a,且原型对象(a)的属性是赋值时候决定的(我没有赋值所以是undefined):

2:b的原型对象(a) 它也有自己的原型对象,指向a.prototype,因为没有修改过,所以还保留着ayuanxing这个 属性;

3,:而b.prototype.byuanxing因为我们修改了b的原型对象指向,所以覆盖了之前的原型对象

所以通过原型链,b2可以访问到原型链上的属性,再回头看看a对象:

还是正常的,这就是原型链的实现;将两个独立的类,通过原型链的查找机制能够实现单向的访问;

个人观点:如描述错误,恳请指正!谢谢!

 

转载于:https://www.cnblogs.com/llauser/p/6714206.html

你可能感兴趣的文章
div或者p标签单行和多行超出显示省略号
查看>>
Elasticsearch 滚动重启 必读
查看>>
Hadoop基本概念
查看>>
java.util.zip压缩打包文件总结一:压缩文件及文件下面的文件夹
查看>>
浅说 apache setenvif_module模块
查看>>
MySQL--数据插入
查看>>
重新学习python系列(二)? WTF?
查看>>
shell脚本统计文件中单词的个数
查看>>
SPCE061A学习笔记
查看>>
sql 函数
查看>>
hdu 2807 The Shortest Path 矩阵
查看>>
熟悉项目需求,要知道产品增删修改了哪些内容,才会更快更准确的在该项目入手。...
查看>>
JavaScript 变量
查看>>
java实用类
查看>>
smarty模板自定义变量
查看>>
研究称90%的癌症由非健康生活习惯导致
查看>>
命令行启动Win7系统操作部分功能
查看>>
排序sort (一)
查看>>
Parrot虚拟机
查看>>
Teamcenter10 step-by-step installation in Linux env-Oracle Server Patch
查看>>