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

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

Javascript - 使用括號(hào)屬性檢索對(duì)象屬性并獲得未定義

Javascript - 使用括號(hào)屬性檢索對(duì)象屬性并獲得未定義

達(dá)令說 2022-07-01 10:27:53
我正在學(xué)習(xí)使用構(gòu)造函數(shù)方法創(chuàng)建 Javascript 對(duì)象,但我無法理解其中一個(gè)示例中構(gòu)造函數(shù)的一個(gè)小行為。<html><body><h2>JavaScript Objects</h2><p id="demo"></p><script>            function User(name,age){                this.name=name;                this.age=age;            }            var user = new User('Daniel',45);            document.getElementById("demo").innerHTML = user[name];     // Return undefined            document.getElementById("demo").innerHTML = user["name"];   // Return Daniel.            document.getElementById("demo").innerHTML = user[age];      // Retutn nothing. Blank            document.getElementById("demo").innerHTML = user["age"];    // Return 45        </script></body></html>我讀到可以使用點(diǎn)運(yùn)算符或括號(hào)運(yùn)算符訪問對(duì)象屬性。這里的括號(hào)運(yùn)算符似乎工作正常?,F(xiàn)在我無法理解這里的兩件事。user[name]正在回歸undefined。為什么undefined?user[age]什么都不返回。為什么它undefined不像以前的情況那樣返回?我在這里想念什么?
查看完整描述

4 回答

?
臨摹微笑

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

當(dāng)你這樣做

user[name]

這會(huì)查找存儲(chǔ)在name變量中的屬性。例如,如果你有

const name = 'foo';
const result = user[name];

這相當(dāng)于:

const result = user.foo;

因?yàn)?code>foo存儲(chǔ)在name變量中。

同樣的事情正在發(fā)生age。

相反,當(dāng)您使用引號(hào)時(shí),解釋器不會(huì)查找變量名,它只使用純字符串:

const result = user['foo']

相當(dāng)于

const result = user.foo;

但是,請(qǐng)記?。鹤詈帽苊馐褂迷?code>name變量,因?yàn)樵陧攲?,?a >window.name必須始終是一個(gè)字符串,如果您不期望它可能會(huì)導(dǎo)致奇怪的錯(cuò)誤。


查看完整回答
反對(duì) 回復(fù) 2022-07-01
?
慕斯王

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

當(dāng)你做 user[name]你真正在做的事情是傳遞一個(gè)名為 name 的變量,因?yàn)槟銢]有聲明一個(gè)名為 name 的變量,你將得到未定義。

當(dāng)您正在做user["name"]您正在做的事情時(shí),您正在告訴您要訪問name對(duì)象內(nèi)部的密鑰。

你也可以

user.name

它會(huì)返回相同的東西user['name']


查看完整回答
反對(duì) 回復(fù) 2022-07-01
?
MYYA

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

問題是當(dāng)您編寫user[name](假設(shè)名稱為Daniel)時(shí),您實(shí)際上是在嘗試訪問其鍵為Daniel有效鍵的值。如果這種情況Daniel是鍵的值name。嘗試這樣做。


document.getElementById("demo").innerHTML = user.name;     // Return undefined

document.getElementById("demo").innerHTML = user["name"];   // Return Daniel.

document.getElementById("demo").innerHTML = user.age;      // Return nothing. Blank

document.getElementById("demo").innerHTML = user["age"]; 

使用.name而不是[name]獲取鍵的值name。


查看完整回答
反對(duì) 回復(fù) 2022-07-01
?
猛跑小豬

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

您沒有定義任何名稱和年齡變量,因此user[name]和user[age]將是未定義的。


您需要定義變量var name = "name"并使用user[name]如下


<html>

<body>

<h2>JavaScript Objects</h2>

<p id="demo"></p>

<script>

            function User(name,age){

                this.name=name;

                this.age=age;

            }

            var user = new User('Daniel',45);

            var name = "name";

            var age = "age";

            document.getElementById("demo").innerHTML = user[name];     // Return undefined

            document.getElementById("demo").innerHTML = user["name"];   // Return Daniel.

            document.getElementById("demo").innerHTML = user[age];      // Retutn nothing. Blank

            document.getElementById("demo").innerHTML = user["age"];    // Return 45

        </script>


</body>

</html>


查看完整回答
反對(duì) 回復(fù) 2022-07-01
  • 4 回答
  • 0 關(guān)注
  • 184 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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