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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

JavaScript對(duì)象:按名稱訪問變量屬性為字符串

JavaScript對(duì)象:按名稱訪問變量屬性為字符串

如果我有一個(gè)如下所示的javascript對(duì)象var columns = {   left: true,   center : false,   right : false}我有一個(gè)傳遞對(duì)象的函數(shù),以及一個(gè)像這樣的屬性名稱//should return falsevar side = read_prop(columns, 'right');身體read_prop(object, property)會(huì)是什么樣的?JavaScript對(duì)象:按名稱訪問變量屬性為字符串
查看完整描述

3 回答

?
不負(fù)相思意

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

您不需要它的功能 - 只需使用括號(hào)表示法

var side = columns['right'];

這等于點(diǎn)符號(hào),var side = columns.right;除了right在使用括號(hào)表示法時(shí)也可能來自變量,函數(shù)返回值等的事實(shí)。

如果您需要它的功能,這里是:

function read_prop(obj, prop) {
    return obj[prop];}

要回答下面與原始問題沒有直接關(guān)系的一些注釋,可以通過多個(gè)括號(hào)引用嵌套對(duì)象。如果您有一個(gè)嵌套對(duì)象,如下所示:

var foo = { a: 1, b: 2, c: {x: 999, y:998, z: 997}};

您可以訪問財(cái)產(chǎn)xc,如下所示:

var cx = foo['c']['x']

如果屬性未定義,試圖引用它會(huì)返回undefined(不nullfalse):

foo['c']['q'] === null// returns falsefoo['c']['q'] === false// returns falsefoo['c']['q'] === undefined// returns true


查看完整回答
反對(duì) 回復(fù) 2019-05-27
?
千萬里不及你

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊

ThiefMaster的答案100%正確,雖然我遇到了類似的問題,我需要從嵌套對(duì)象(對(duì)象中的對(duì)象)獲取屬性,所以作為他的答案的替代,你可以創(chuàng)建一個(gè)遞歸的解決方案,將允許你定義一個(gè)術(shù)語(yǔ)來抓取任何屬性,無論深度如何:

function fetchFromObject(obj, prop) {

    if(typeof obj === 'undefined') {
        return false;
    }

    var _index = prop.indexOf('.')
    if(_index > -1) {
        return fetchFromObject(obj[prop.substring(0, _index)], prop.substr(_index + 1));
    }

    return obj[prop];}

您對(duì)給定屬性的字符串引用重新合并的位置 property1.property2

JsFiddle中的代碼和注釋。


查看完整回答
反對(duì) 回復(fù) 2019-05-27
?
暮色呼如

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

由于我通過上面的答案得到了我的項(xiàng)目幫助(我問了一個(gè)重復(fù)的問題并在這里提到了),我在var中嵌套時(shí)提交了一個(gè)用于括號(hào)表示法的答案(我的測(cè)試代碼):

<html>

<head>

  <script type="text/javascript">

    function displayFile(whatOption, whatColor) {

      var Test01 = {

        rectangle: {

          red: "RectangleRedFile",

          blue: "RectangleBlueFile"

        },

        square: {

          red: "SquareRedFile",

          blue: "SquareBlueFile"

        }

      };

      var filename = Test01[whatOption][whatColor];

      alert(filename);

    }

  </script>

</head>

<body>

  <p onclick="displayFile('rectangle', 'red')">[ Rec Red ]</p>

  <br/>

  <p onclick="displayFile('square', 'blue')">[ Sq Blue ]</p>

  <br/>

  <p onclick="displayFile('square', 'red')">[ Sq Red ]</p>

</body>

</html>


查看完整回答
反對(duì) 回復(fù) 2019-05-27
  • 3 回答
  • 0 關(guān)注
  • 1391 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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