web前端:理解js原型链

2022-12-31 09:23:24来源:网络转载作者:匿名 阅读量:76 字体:

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;

web前端:理解js原型链

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、在这里我给大家画了一张图,便于大家理解原型链。

特别提示

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

推荐阅读

  • LOL双倍经验卡怎么用如何购买

    LOL双倍经验卡怎么用如何购买

    英雄联盟游戏、双倍经验卡01、首先,登陆游戏,再“商城”里的“海克斯及其他”里选择“加成道具”,大家就可以看到各种期限和条件的双倍经验卡了。 02、双倍经验卡的类型分为两种:一种是期限双倍经验卡,顾...

    阅读: 849

  • nba2k12键盘操作大全

    nba2k12键盘操作大全

    01、前进:A 后退:S 往左:A 往右:D 02、空接:0 + Shift 背打:Enter + Shift 3 键 欧洲脚步:Shift + 5 半转身投篮: 7 03、传球键位:空格...

    阅读: 786

  • dnf暗影蔽日和荒古怎么选择?

    dnf暗影蔽日和荒古怎么选择?

    01、暗影蔽日:90级SS短剑,装备附加属性为最终伤害增加42%和25的属性强化。 02、荒古遗尘短剑:85级SS短剑,装备附加特效为增加35%所有攻击力,释放魔能后技能攻击力再上升20%。 03...

    阅读: 875

  • LOL逆羽天赋符文出装加点

    LOL逆羽天赋符文出装加点

    英雄联盟 英雄逆羽主符文01、主符文加点推荐:精密,因为逆羽是一个AD射手,主符文点精密可以使其普通攻击伤害更高。 02、主符文第二、三:迅捷步法+凯旋,迅捷步法提升逆羽的消耗恢复能力,凯旋为...

    阅读: 1006

  • 《饥荒》怎么杀猪人

    《饥荒》怎么杀猪人

    01、直接击杀看见落单的猪,直接击杀。穿上护甲,带上木矛,注意走位就可以了。击杀会掉落大肉,有几率掉落猪皮。 02、让猪人自相残杀可以用怪物肉收买几个猪人,它们就会跟着你做攻击。这个时候玩家就负责捡...

    阅读: 825

  • 梦幻西游手游地府加点解析

    梦幻西游手游地府加点解析

    01、梦幻西游手游中有很多门派,分别是:普陀、方寸、地府、化生、龙宫、狮驼、魔王和大唐。 02、其中地府是一直比较重要的,因为地府的眼、六道和毒等技能都是必不可少的,而且他大招的作用,没其他职业可以...

    阅读: 834

  • 旅行青蛙怎么种三叶草

    旅行青蛙怎么种三叶草

    01、三叶草是自动生长的所以不需要种植,首次游戏可以在花坛处收割500个三叶草。 02、后面的三叶草会一点点往外长,大概3个小时左右就可以长满一次,长满之后即可收割获得三叶草。 03、可以通过充值...

    阅读: 862

  • 我的世界 输入中文的方法

    我的世界 输入中文的方法

    电脑01、首先我们先启动游戏,进入游戏之后,我们按下回车键 弹出打字窗口 但是此时我们只能输入英文(中文输入法无法使用) 02、不过我们可以同时按alt+tab键,切换会电脑桌面 03、接着在电脑...

    阅读: 875

  • CF穿越火线怎么解封180_30天申诉教程

    CF穿越火线怎么解封180_30天申诉教程

    01、封号的原因有很多,我们要知道自己被封号的原因然后才好申诉,原因有很多,比如我们在玩游戏的时候发现了游戏的BUG,不但没有举报反而是自己也使用了这个BUG,如果被系统发现的话就会被封号的。02、还...

    阅读: 882

  • 页游私服介绍

    页游私服介绍

    01、近段时间在网络中流行玩页游私服,页游私服提供了更多的奖励,让玩家玩得更加过瘾,升级更块、经验更高、攻击更变态,各种的属性都比传统的页游要高上很多。 我就拿贪玩蓝月给大家举个例子吧02、首先进入到...

    阅读: 856

热门文章