js 物件的屬性名是變數怎麼處理

2021-03-26 11:40:31 字數 2905 閱讀 7009

1樓:幫助

var obj=;

var key='testkey';

console.log(obj[key]);//使用方括號訪問

2樓:好程式設計師

目標:js的屬性名可以使用變數

舉例:js物件object,當賦給該物件屬性的時候可以採用以下方式

**如下:

var object;

object.prop1 = "value1";

object.prop2 = "value2";

也可以採用如下方式:

**如下:

object.push();

object.push();

在這裡prop1 作為屬性名稱,可以直接用,也可以加上引號,比如:

**如下:

object.push();

表達的含義都是一樣的,也就是說,prop1只能作為常量被識別,即使它是個變數也沒用,例如:

複製** **如下:

var prop1 = "prop2";

object.push();

這樣通過object訪問prop2會出現什麼情況呢?比如:

**如下:

alert(object.prop2)

不用問,當然是undefined,而訪問object.prop1卻是"value1"

原因已經說過了,無論加不加引號,屬性一律當成常量對待.再舉乙個例子:

**如下:

var arr=;

arr['js']='jquery';

arr['css']='oocss';

var obj={};

for(var i in arr)

alert(obj.js);

讀者不放猜一下alert會列印什麼?

當然是undefined.

大家再猜一下,如果alert(obj.i)會列印什麼?

當然是oocss,為什麼?因為obj現在只有乙個屬性i,而且通過兩次迴圈,obj.i前面的被後面的覆蓋掉.

如果有需求,需要動態新增屬性,也就是說,屬性也必須是乙個變數才行,如上例**,alert(obj.js)不是undefined,而是jquery,該如何修改呢?

**如下:

var arr=;

arr['js']='jquery';

arr['css']='oocss';

var obj={};

for(var i in arr)

alert(obj.js);

就是那麼簡單!把物件obj當成乙個陣列來對待,它支援使用類似於下標形式的方法來把屬性和屬性值賦給物件.但是,物件依然是物件,obj.length是不存在的.

3樓:匿名使用者

物件訪問屬性有兩種方法

1、obj.paramname,使用.訪問2、obj[paramename],使用中括號屬性名訪問如:stu = ;

var age1 = stu.age;

var age2 = stu["age"];

alert(age1 == age2);//true所以,你的應該修改為

if(url[1])}

js 乙個物件的屬性名是乙個變數如何設定和獲取值

4樓:網海1書生

物件[變數]

比如duobj是zhi乙個物件,它有個屬性是name:

var x = "name";

var n = obj[x]; //獲取屬性值obj[x] = "***"; //設定屬dao性值

補充說回明:對

答象屬性的使用有兩種方式:

obj.name

或obj["name"]

第二種方式的屬性名是個字串,這就為變數的使用製造了可能性。

js中,如果是乙個物件型別object賦值給乙個自定義的變數名,這個變數名可以不需要

5樓:匿名使用者

可以,但不是像樓上說的一樣,因為js是寬型別語言,你不加var他缺省會去識別你的型別,至於全域性和區域性變數,還要看作用域範圍。

6樓:匿名使用者

可以copy,不用var修飾,代表這個變數是全域性變

量。看上面列子,name其實就是window物件的乙個屬性,也就是全域性變數。

7樓:匿名使用者

var 是 js定義變數的乙個格式,var是弱型別,可以定義我們知道的所有型別,

比如 var a = 0; 則內a為數字型別,var a ="";則a為字串等...

有時容候你會發現你直接在有些瀏覽器上面用: name=1;而不加var的情況下也可以使用,

這是因為瀏覽器相容性的差別,最好還是加上var 避免在你測試的瀏覽器上面可以執行,

而其他的瀏覽起執行不正常.

在 js 裡面 物件屬性名字 帶減號 怎麼取

8樓:匿名使用者

是不能的了。

減號是運算子,如果a.a-b,此處會被當成a.a減去 b。

建議您把減號換成下劃線即可。要不然,只能以a['a-b']的形式了。

9樓:蟲二

var test=;

alert(test.a-b);//解析

錯誤,js會解析為test.a和b的差 顯然,你沒有定義test.a和b

alert(test['a-b']);//正確var test=;

var b=1;

alert(test.a-b);//輸出 2alert(test['a-b']);//輸出 your test a-b

你那樣回不能主要是因為它答會解析為 a.a和b的差,而不是a的a-b屬性

有用請採納~

jq如何獲取js物件的成員變數的值

測試function testcustomattribute 在js中如何取出json中的物件的值 二樓少了個括號 var json eval str 你這個是個字串。json.parse一下就行了 你前台是用什麼接收的?var str var json eval str console.log j...

js中怎麼根據陣列物件中的兩個屬性來取屬性的值

var obj function getinfo obj,param1,param2 return no such value alert getinfo obj,23,12 怎麼獲取js 陣列中的物件的屬性 js中如何獲取某乙個屬性的值,如何設定乙個屬性的值 如下 這細微的差別就會影響到程式的結果...

js怎麼在內部呼叫變數的值了

var chooseere chooseer 只是把chooseer 的 值 賦給了 chooseere chooseer 是變數名,不能直接拼接字串,正確方式 chooseere 而且你下面的 也有問題。因為你的 attr id 會取到乙個字串,我看你直接 就乘以乙個 小指令碼的值 這個寫法 也有...