3 回答

TA貢獻(xiàn)4條經(jīng)驗(yàn) 獲得超1個(gè)贊
odiv.num 可以理解為是一個(gè)靜態(tài)訪問對(duì)象的屬性(或者對(duì)象的方法),num 是一個(gè)變量名;
odiv[num] ?這個(gè)就是動(dòng)態(tài)的訪問屬性(或者方法),[ ] 里面是一個(gè)字符串,
二者效果是一樣的,但是用法不同;
靜態(tài)的按變量名訪問,比較單一,不可以修改;
動(dòng)態(tài)的可以用賦予字符串的方式訪問,靈活性更大,比較常見的是可以遍歷對(duì)象的屬性;
比如說?odiv 有width,height ?,color,opcity ,border 等等好多屬性;
用靜態(tài)的就會(huì)是這樣:?
odiv.width?; odiv.height; odiv.color; odiv.opcity; odiv.border?//只能這樣一個(gè)一個(gè)手寫;列舉出來,不能用for?之類的語句遍歷;因?yàn)閛div.num? ????????????//這個(gè)?num?不能修改,它是變量名
用動(dòng)態(tài)的就會(huì)是這樣:
for(var?attr?in?odiv){ ???console.log(?odiv[attr]) } //全部都搞出來了?循環(huán)中?attr?會(huì)自動(dòng)賦值成'width';'height'.....從而訪問到odiv?的屬性
用處就是既然能自動(dòng)遍歷了,就可以賦值修改了;像Jquery 的
?$(odiv).css({
????width:xx,
????height:oo
})
就是用動(dòng)態(tài)訪問的原理來實(shí)現(xiàn)的

TA貢獻(xiàn)101條經(jīng)驗(yàn) 獲得超107個(gè)贊
假設(shè)有一個(gè)對(duì)象:
odiv?=?{ ????num:?1 };
如果我要獲取其中的num的值,可以有兩種方式:
console.log(odiv.num);?//1 console.log(odiv["num"]);?//1
下面一種方式是錯(cuò)的:
console.log(odiv[num]);??//報(bào)錯(cuò):Uncaught?ReferenceError:?num?is?not?defined
不知道這是不是你想問的。。
添加回答
舉報(bào)