JS剖析 —— 原型鏈
原型链
访问一个对象的属性时:
先在自身属性中查找,找到返回
如果没有,再沿着proto这条链向上查找,找到返回
如果最终没找到,返回undefined
别名:隐式原型链
作用:查找对象的属性(方法)
构造函数/原型/实体对象的关系(图解)
var o1=new Object();
var o2={};image.png
构造函数/原型/实体对象的关系2(图解)
function Foo(){}image.png
// console.log(Object)//console.log(Object.prototype)console.log(Object.prototype.__proto__) //输出null function Fn() { this.test1 = function () { console.log('test1()') } } console.log(Fn.prototype); Fn.prototype.test2 = function () { console.log('test2()') } var fn = new Fn() fn.test1() fn.test2() console.log(fn.toString()) console.log(fn.test3) // fn.test3()
原型链分析.png
/* 1. 函数的显示原型指向的对象默认是空Object实例对象(但Object不满足) */ console.log(Fn.prototype instanceof Object) // true console.log(Object.prototype instanceof Object) // false console.log(Function.prototype instanceof Object) // true /* 2. 所有函数都是Function的实例(包含Function) */ console.log(Function.__proto__===Function.prototype) /* 3. Object的原型对象是原型链尽头 */ console.log(Object.prototype.__proto__) // null
點(diǎn)擊查看更多內(nèi)容
1人點(diǎn)贊
評論
評論
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦