分享一下我如何去理解javascript原型的问题

时间:2022-04-22 21:57:46

看这篇文章之前请先看王福明的博客----

深入理解javascript原型和闭包(4)——隐式原型


 最好是对照着看;;
先扯一段题外话:之前看前端的原型问题当时看着看着就默认了他的存在,过几天就忘了,其主要原因就是没有理解消化,今天再理一遍,顺便记录一下,分享一下,有用的话点个赞,没用勿喷。

对照看王福朋的博客:
先用我的理解解释名词:
__proto__   : 隐式原型   ----------“父亲”--称呼
prototype    :原型            ----------角色 --你老爸相对你的角色
constructor :构造器        -----------父亲 --就是你老爸啦
---------------这里只是为了方便理解-----名词解释就不要过分纠结

先来个例子:
var A = function(){}    -------------这是小明的爸爸大明
var B = new A();        -------------new了个小明  
B.__proto__     ------------------------------>A.prototype
小明喊了声“爸爸”---------------------------->大明的的角色(说不定真实的父亲是隔壁老王)
B.__proto__ .constructor-------------------A
喊了“爸爸”然后就要找那个人了------------大明就是他的爸爸


A.prototype  -------------------A.prototype
A.prototype.constructor---------------A----------A.prototype.constructor
A.prototype.constructor.prototype ---------------A.prototype
........

"爸爸"------------对应的人--------------大明
大明---------------对应的称呼-------------“”爸爸


理解一下要是不难理解继续往下看

第二张图:
Object.prototype确实一个特例——它的__proto__指向的是null,切记切记
"父亲"的“父亲”的“父亲”。。。。。。------> 就叫始祖吧------null