prototype和__proto__之间的关系。学习
function ABC() {} var abc = new ABC()
咱们知道ABC有个prototype属性,当new出一个新变量abc,其中abc含有__proto__属性,为了区别对待,借鉴你们的广泛认识,其中称prototype为显式原型、__proto__为隐式原型。prototype
有几个概念须要描述一下。rest
OK,经过下面代码截图就很能说明问题。
code
function ABC () {} var abc = new ABC() // 显然具备以下的关系 // abc instanceof ABC instanceof Object abc.say1 = () => { console.log('say1') } ABC.prototype.say2 = () => { console.log('say2') } Object.prototype.say3 = () => { console.log('say3') } abc.say1() // 调用本身的方法 abc.say2() // 查找本身的__proto__方法,即ABC的prototype原型方法 abc.say3() // 沿着原型链查找到Object的prototype原型方法 abc.say4() // 报错,Uncaught TypeError: abc.say4 is not a function
调用属性名,也是如此。。。对象
终于有时间来写写个人JS点滴,工做事太多,最近由于工做缘由还在学习Lua和Nginx,以及春哥的Openresty,哎😔。。。blog