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

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

Javascript - 使用括號屬性檢索對象屬性并獲得未定義

Javascript - 使用括號屬性檢索對象屬性并獲得未定義

達令說 2022-07-01 10:27:53
我正在學(xué)習(xí)使用構(gòu)造函數(shù)方法創(chuàng)建 Javascript 對象,但我無法理解其中一個示例中構(gòu)造函數(shù)的一個小行為。<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>我讀到可以使用點運算符或括號運算符訪問對象屬性。這里的括號運算符似乎工作正?!,F(xiàn)在我無法理解這里的兩件事。user[name]正在回歸undefined。為什么undefined?user[age]什么都不返回。為什么它undefined不像以前的情況那樣返回?我在這里想念什么?
查看完整描述

4 回答

?
臨摹微笑

TA貢獻1982條經(jīng)驗 獲得超2個贊

當(dāng)你這樣做

user[name]

這會查找存儲在name變量中的屬性。例如,如果你有

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

這相當(dāng)于:

const result = user.foo;

因為foo存儲在name變量中。

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

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

const result = user['foo']

相當(dāng)于

const result = user.foo;

但是,請記?。鹤詈帽苊馐褂迷?code>name變量,因為在頂層,它window.name必須始終是一個字符串,如果您不期望它可能會導(dǎo)致奇怪的錯誤。


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

TA貢獻1864條經(jīng)驗 獲得超2個贊

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

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

你也可以

user.name

它會返回相同的東西user['name']


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

TA貢獻1868條經(jīng)驗 獲得超4個贊

問題是當(dāng)您編寫user[name](假設(shè)名稱為Daniel)時,您實際上是在嘗試訪問其鍵為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。


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

TA貢獻1858條經(jīng)驗 獲得超8個贊

您沒有定義任何名稱和年齡變量,因此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>


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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