如何讲好原型链

昨天面试字节,挂了,很多知识只是明白个大概,但无法自己表述出来,在知道和表述之间还有着巨大的鸿沟,同时也再次证明了学东西真的不图快,图快就真学不好了。之后的学习慢慢来,稳扎稳打。那我接下来以一篇知乎来自己总结原型链。

function Person(name){     // 1
    this.name = name;
}

Person.prototype.sayName = function(welcome) {     // 5
	console.log(welcome, this.name);
}

var person1 = new Person('Smiley');     // 9
person1.sayName('Hello');         // 10

以后给面试官讲原型链的时候可以自己在屏幕上画图

				  prototype --》
(function)                            【object】
				《-- constructor
											^
											|__proto__
				  prototype --》
(Person)                              【sayName】Person.prototype
				《-- constructor
											^
											|__proto__
										【person1】


console.log(Person === Person.prototype.constructor);
console.log(person1.__proto__ === Person.prototype);

// 均为 true

person1.constructor这个属性,顺着person1的__proto__向上找,找到Person.prototype。
Person.prototype上有constructor这个属性指向person

MDN官方解释:
每个实例对象( object )都有一个私有属性(称之为 proto )指向它的构造函数的原型对象(prototype )。该原型对象也有一个自己的原型对象( proto ) ,层层向上直到一个对象的原型对象为 null。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值