在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ js中一段代碼看不懂

js中一段代碼看不懂

在讀一個api源碼的時候,發(fā)現(xiàn)一段代碼看不懂

function get (obj, key) {
    return key.split('.').reduce(function (o, x) {
      return (typeof o === 'undefined' || o === null) ? o : o[x]
    }, obj)
  }

obj , key 參數(shù)具體指代什么我也不清楚,但是在Stack Overflow上找到一樣的代碼

[圖片]
clipboard.png

說明這個工具函數(shù)應(yīng)該還是有一定的復(fù)用性的
只是我英語太渣讀不懂,

有沒有js高手告訴我這段代碼的作用是什么,以及如何去讀懂它

回答
編輯回答
避風(fēng)港

翻譯下截圖中的內(nèi)容,這個函數(shù)的作用是,“獲取指定對象的嵌套屬性”

obj 就是“指定對象”,而 key 就是“嵌套屬性”,取值是鏈?zhǔn)降淖址问?'loc.foo.bar'

當(dāng)要獲取的嵌套屬性不存在時(可能是屬性鏈中某個中間屬性就不存在),就返回 null 或 undefined。

了解這段代碼的作用:(英語不好可以用)翻譯工具 + 看調(diào)用示例
如何去讀懂它:哪里不懂點(查)哪里 (split? reduce? 查文檔吧)

2017年6月4日 20:55
編輯回答
深記你
const obj = {a:{b:{c:1}}}
get(obj, 'a.b.c') // 1
obj.a.b.c // 1
get(obj, 'a.d.e') // undefined
obj.a.d.e // Error

可能就是這個作用吧,當(dāng)前置key的值不存在的時候避免報錯,返回undefined。

2017年10月25日 16:09