第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關(guān)于判斷js簡單對象的問題(plain object)

關(guān)于判斷js簡單對象的問題(plain object)

開滿天機(jī) 2019-03-14 18:15:52
這是redux的實(shí)現(xiàn)方式https://github.com/reactjs/re...,讓我疑惑的是后面這一通操作,  let proto = obj  while (Object.getPrototypeOf(proto) !== null) {    proto = Object.getPrototypeOf(proto)  }  return Object.getPrototypeOf(obj) === proto*個人粗見怎么都應(yīng)該是返回的true吧,這一通操作意義是什么呢?請大神來答疑解惑。
查看完整描述

7 回答

?
墨色風(fēng)雨

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個贊

尋找原型鏈的頂端


查看完整回答
反對 回復(fù) 2019-03-29
?
侃侃無極

TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個贊

let proto = obj // proto 默認(rèn)值
while (Object.getprototypeOf(proto) !== null) { // 判斷proto的原型對象是否存在

proto = Object.getprototypeOf(proto) // 存在的話就把proto的原型對象賦值給proto,繼續(xù)判斷

}

return Object.getPrototypeOf(obj) === proto* // 實(shí)際上就是判斷obj的原型鏈有幾層,只有一層就返回true


查看完整回答
反對 回復(fù) 2019-03-29
?
慕姐4208626

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個贊

涉及到原型鏈的繼承,你運(yùn)行下代碼就明白了:


function Foo() {}


// obj不是一個plain object

var obj = new Foo();


console.log(typeof obj, obj !== null);



let proto = obj

while (Object.getPrototypeOf(proto) !== null) {

  proto = Object.getPrototypeOf(proto)

}


// false

var isPlain = Object.getPrototypeOf(obj) === proto;

console.log(isPlain);


查看完整回答
反對 回復(fù) 2019-03-29
?
紅糖糍粑

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個贊

就是找父親
找到null然后停止,開始對比null的兒子和判斷的對象的父親
object的父親是頂級的object對象,祖父是null
父親拿父親比較相等
function的父親是function,祖父是object,曾祖父是null
祖父跟父親比較不相等

查看完整回答
反對 回復(fù) 2019-03-29
?
HUX布斯

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個贊

尋找原型鏈的頂端


let a = {};

isPlainObject(a); // true


class Person{};

let p = new Person();

isPlainObject(p); // false


查看完整回答
反對 回復(fù) 2019-03-29
  • 7 回答
  • 0 關(guān)注
  • 2436 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號