【學(xué)習(xí)打卡】第6天 數(shù)據(jù)結(jié)構(gòu)之“鏈表”
標(biāo)簽:
JavaScript
课程名称:JavaScript版数据结构与算法
课程章节:第5章 数据结构之“链表”
主讲老师:lewis
课程内容:
今天学习的内容包括:
5-7 前端与链表:JS 中的原型链——本章结合vscode调试直观的学习原型链的指向和关系。
课程收获:
JS 中的原型链
1、查看平时定义的对象、函数体、数组的原型链关系
const obj = {}
console.log(obj.__proto__ === Object.prototype); // true
const func = () =>{}
console.log(func.__proto__ === Function.prototype); // true
console.log(func.__proto__ === Object.prototype); // true
const arr = []
console.log(arr.__proto__ === Array.prototype); // true
console.log(arr.__proto__ === Object.prototype); // true
2、在Function,Object上对原型链定义属性,定义对象和函数,看访问对应属性结果
const obj = {}
Object.prototype.x = 'x'
const func = () =>{}
Function.prototype.y = 'y'
console.log(obj.x); // x
console.log(obj.y); // undefined
console.log(func.y); // y
console.log(func.x); // x
3、自己写一个instanceOf判断继承关系,通过循环原型链判断A的__proto__上是否存在B的prototype,进而实现判断继承。
const instanceOf = (A,B) => {
let p = A
while(p){
if(p === B.prototype){
return true
}
p = p.__proto__
}
return false
}
console.log(instanceOf({},Object)); // true
console.log(instanceOf(Object,{})); // false
4、题目分析,在原型链上去查找a,b的值
var foo = {}
F= function(){}
Object.prototype.a = 'value a'
Function.prototype.b = 'value c'
console.log(F.a); // 'value a'
console.log(F.b); // 'value b'
console.log(foo.a); // 'value a'
console.log(foo.b); // undefined
通过今天的学习,对JS 中的原型链更加明白了,在以后的工作中也能够更好的运用原型链的特性解决特定问题,对自己说一句,加油😀~
坚持打卡,坚持学习!明天见💪~
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫(xiě)下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得
100積分直接送
付費(fèi)專(zhuān)欄免費(fèi)學(xué)
大額優(yōu)惠券免費(fèi)領(lǐng)