搞懂原型链之前,必须先知道原型,如果不懂看上篇文章
JavaScript原型链精讲https://blog.csdn.net/qq_56989560/article/details/124276890?spm=1001.2014.3001.5501
一.引入
先创建一个构造函数,并给构造函数的原型对象上添加属性
//创建构造函数
function myclass(){}
//给原型上添加属性
myclass.prototype.a=123
var mc=new myclass()
var mc1=new myclass()
如上代码 mc.a是可以访问到123的值
那么问题来了:按理说a属性应该处于构造函数的原型上,mc中应该没有a属性,它只是可以访问到a
我们检查一下mc中是否有a属性
console.log("a" in mc)
那么这种检测方法肯定是不行的,与事实相违背
这里提供了一种新的方法hasOwnProperty()检查自身是否有这种属性
console.log(mc.hasOwnProperty("a"))
那么这个方法哪里来的?
二.理解
原型对象也是对象,它也有它的原型对象
而在Object顶级对象中存在很多方法,可直接拿来使用
console.log(mc.__proto__.__proto__)这样就可以获取原型的原型
可以看到里面有好多方法