百科查询网经验知识百科全书!
首页 >游戏数码 >IT技术 > web前端:理解js原型链

web前端:理解js原型链

0次浏览 | 2022-10-25 05:41:29 更新
来源 :互联网
最佳回答
本文由作者推荐

工具/材料

javascript

详细内容

  • 01

    学习原型链之前我们先认识一下构造函数,代码如下:

    function S() {
    this.name = 'xxx';
    this.say = function() { console.log(this.name) }
    }
    var s1 = new S();

    其中,s1是S的实例,s1的__proto__(大家先不用管__proto__属性,后续会讲到)中有一个constructor(构造函数)属性,该属性指向S。
    在这里,大家可以记住两点:
    1.s1是构造函数S的实例;
    2.s1.__proto__.constructor===S 也可以写成 s1.constructor===S;

  • 02

    接下来我们来看下一段代码:

    function S2() {}
    S2.prototype.name = 'XXX';
    S2.prototype.say = function() {
    console.log(this.name);
    }

    var s2 = new S2();
    var s3 = new S2();
    console.log(s2.sayName === s3.sayName);//true
    console.log(s2.__proto__===S2.prototype);//true

    这一段代码中我们可以看到一个新属性——prototype,这是什么呢,其实这就是构造函数S2的原型对象,每个对象都有__proto__属性,但是只有函数对象才有prototype属性。而s2是构造函数S2的实例,而s2.__proto__指向的就是S2的原型对象,即s2.__proto__===S2.prototype。得到一个结论,实例的__proto__属性指向的就是其构造函数的原型对象。

  • 03

    继续上一步的代码,我们添加代码继续调试:

    console.log(s2.__proto__);//返回S2的原型对象
    console.log(S2.prototype);//返回S2的原型对象

    console.log(s2.__proto__.__proto__);//返回Object对象
    console.log(S2.prototype.__proto__);//返回Object对象

    console.log(s2.__proto__.__proto__.__proto__);//返回null
    console.log(S2.prototype.__proto__.__proto__);//返回null

    其实,S2的原型对象上还有原型对象,因为S2的原型对象也相当于只是Object对象的一个实例。

  • 04

    在这里我给大家画了一张图,便于大家理解原型链。

特别提示

码子不易,小编如有说得不对的地方,望大家指点包含,谢谢

蚂蚁集团完成投票权的调整  会带来什么影响
蚂蚁集团股票权的调整,直接影响到了整个集团的战略和决策,近日,蚂蚁集团对外公布了已经完成的投票权的调整,引起了业内外人士...
5G+北斗 高精定位能做些什么
近日,工业和信息化部批复中国移动使用4.9G赫兹部分的5G频率资源,在我国的多个省份开展5G地空通讯技术的试验,该技术的...
邮政快递改地址如何修改
生活当中很多人都会选择网购,使用邮政快递收发快递也是很常见的,那么邮政快递改地址如何修改呢?具体修改方法如下。首先打开邮...
星偶软件怎么设置谁可以和我合照
 有很多朋友都在用星偶软件,但是很多朋友不知道星偶软件怎么设置谁可以和我合照,其实步骤很简单,跟随我一起看看吧!首先打开...
皮皮虾怎样开启微信授权
皮皮虾是一款非常不错的软件,这里又有很多搞笑的帖子,在这里可以寻找到快乐,并且也能够看到众多幽默的神评论,那么皮皮虾怎样...
excel阅读模式找不到怎么办
Excel表格之间很多人都在使用,可以把自己想要记录的数据记录在其中,展现的方法会非常好,那么Excel阅读模式找不到怎...
如何抹掉iPhone手机的数据
使用iPhone手机时间久了之后,手机当中会有多种多样的数据,如果说决定不再使用这款手机,那么要把手机当中的数据消除,那...
Tencent是什么文件夹(Tencent文件夹能删除吗)
Tencent文件夹主要是腾讯应用程序当中默认安装的一种文件夹,它是不可以删除的。日常生活中只要使用腾讯QQ,微信,腾讯...
如何在excel中打钩(excel里打勾在哪里)
很多人在日常办公或学习时都离不开excel等软件,但也有些小白对excel这些软件缺乏了解,不知该如何在内容中打勾,下面...
win7怎么设置屏幕休眠密码(win7屏幕保护设置密码)
想要设置win7系统电脑的屏幕休眠密码很简单,只需在桌面的个性化设置功能中操作即可,下面就给大家来介绍一下详细内容。1....
关于我们 | 版权声明 | 免责声明 | 联系我们
免责声明:百科查询网所有文字、图片、视频、音频等资料均来自互联网,不代表本站赞同其观点,内容仅代表作者本人意见,若因此产生任何纠纷作者本人负责,本站亦不为其版权负责! 如有问题,请联系我们
CopyRight©1999-2022 www.chaxunla.com All Right Reserved 闽ICP备16000424号