web前端:理解js原型链

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

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

特别提示

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

推荐阅读

  • 富爸爸现金流游戏玩法介绍

    富爸爸现金流游戏玩法介绍

    01、首先,需要安装好软件。进入游戏页面后,建议选择单人游戏。 02、因为很多东西在现实生活中相通的,我们在游戏中的经验也可以用到现实生活中。然后,选择电脑玩家跟我们一起玩就好了。 03、创建好账...

    阅读: 662

  • 迷你世界怎么刷皮肤

    迷你世界怎么刷皮肤

    手机迷你世界APP软件01、目前在迷你世界游戏中玩家可以通过获得足够的迷你豆来兑换皮肤,因此要想刷皮肤,就意味着刷迷你豆。那怎么获得迷你豆啦,进入游戏主页后点击“我的家园”。 02、进入我的家园后,...

    阅读: 813

  • dnf个人传送怎么用

    dnf个人传送怎么用

    01、首先自己创建一个队伍,确定自己是队长。 02、打开功能菜单,找到公会系统。 03、找到中间的公会传送,左键点击。 04、然后在选择你要去的地点,即完成了一次个人传送。 05、以上就是小编...

    阅读: 989

  • 英雄联盟lol怎么下载

    英雄联盟lol怎么下载

    01、先搜狗搜索:英雄联盟。 02、然后再点击页面中间的下载游戏。 03、选择最上方的下载方式进行子程序下载。 04、下载子程序完成之后,运行,会出现一个下载界面,点击开始下载即可。 05、完...

    阅读: 902

  • LOLS8龙女打野天赋符文龙女出装加点

    LOLS8龙女打野天赋符文龙女出装加点

    01、首先选择精密系的致命节奏。 02、然后依次点出凯旋,传说:欢欣,致命一击。 03、副符文系选择主宰,然后点出猛然冲击和无情猎手。 04、出装和加点方式可以选择图中的方式。 05、以上就是...

    阅读: 861

  • 英雄联盟lol哪些英雄克制剑圣?

    英雄联盟lol哪些英雄克制剑圣?

    01、武器大师作为半肉,武器大师有输出有控制有护甲,还有技能“反击风暴”的存在,完全不虚剑圣。在武器的打野套路被开发出的现在版本,剑圣在野区看见武器只能选择退让或者是呼唤队友,可见武器是非常的克制剑圣...

    阅读: 737

  • 青蛙游戏反映了什么问题

    青蛙游戏反映了什么问题

    01、流行文化的不断转变这款游戏十分符合最近流行的一种生活方式——佛系养身,与当下的流行文化紧密贴合。 02、人们对契约关系的渴望游戏当中的这只青蛙,无异于日常生活中的宠物,你需要给它准备出行的食物...

    阅读: 735

  • 如何获得英雄联盟边框

    如何获得英雄联盟边框

    英雄联盟01、首先,英雄联盟的边框是不可以充钱得到的,它是每个赛季结束后根据召唤师的段位由系统发放的赛季奖励。 02、根据赛季结算时段位的不同,有不同的边框奖励,段位越高,获得的边框就会越精致。每个...

    阅读: 867

  • 剑网三95级新地图boss点

    剑网三95级新地图boss点

    01、剑网三的95级新地图——阴山大草原、五台山、千岛湖和黑戈壁。终于在不久前更新了。并且这些野外BOSS在被首次击杀后可能会掉落各职业相对应心法的720装备。 02、阴山大草原BOSS在:王族猎场...

    阅读: 770

  • 金庸群侠传x完美女主攻略

    金庸群侠传x完美女主攻略

    金庸群侠传x01、金庸群侠传x完美女主是游戏新出的一个隐藏剧情,首先介绍四个解锁选项:春:可以解锁独孤11级;夏:可以解锁胡刀11级;秋:可以解锁斗转11级;冬:可以解锁野球拳11级。 02、另外玩...

    阅读: 873

热门文章