今天寫題的時候遇到用點取不到物件這個問題,
題目大致是這個樣子
console.log($element);//
console.log(cachedata.columns[0])//branchid;
console.log(cachedata.columns[1])//chname;
console.log($element.branchid)//0003
console.log($element.chname)//哈哈哈
console.log($element.cachedata.columns[0])//語法錯誤
var firsttd = $element[cachedata.columns[0]];//正確
var secondtd = $element[cachedata.columns[1]];//正確
branchid 這個物件是不確定的,通過這個cachedata.columns[0]可以獲取對應的branchid ,類似於cachedata.columns[0] == branchid;這兩個是一樣的,但是在用點語法取值的時候是錯誤的,後來聽大神指導明白了原來物件是變數的時候不能用點語法來取值;
var obj = ;
var getname = obj.name;//點方法
var getage = obj['age'];//中括號法
console.log(getname);//列印結果:張三
console.log(getage);//列印結果:18
var obj = };
應該有同學注意到了吧,有個屬性名是數字,這個時候用點語法就會報錯,用中括號就可以:
console.log(obj.34);//語法報錯
console.log(obj['34']);//正常獲取到;
所以說,點語法和中括號法還是有區別的,根據查資料,結論如下:
1、中括號法可以用變數作為屬性名,而點方法不可以;
var obj = {};
obj.name = '張三';
var myname = 'name';
console.log(obj.myname);//
undefined,訪問不到對應的屬性
console.log(obj[myname]);//張三
2、中括號法可以用數字作為屬性名,而點語法不可以;
3、中括號法可以使用js的關鍵字和保留字作為屬性名,而點語法不可以(盡量避免在變數或者屬性中使用關鍵字或保留字);
**:
js中屬性點 和中括號 的關係。
本來這裡說的是 js 執行乙個字串形式函式的方法。但是呢看到乙個 window test 居然一下子轉不過彎來。這就尷尬了。不是說好了 和 其他都是 什麼的什麼 關係嗎?如 window.onload 表示 window 的載入事件。使用 function fn 定義了乙個函式,和使用 var fn...
物件用 來獲取屬性的注意點
今天寫 用 var strategies b function salary function bonus salary,strategy bonus.prototype.getbonus function var bos new bonus 500,a bos.getbonus 如果要呼叫某個屬性...
獲取物件屬性值的方法
方法1 require watir ie watir ie.new ie.goto def messlg value,re x ie.text field name value to s.each do d x.unshift d end0.upto x.length 1 do t s x t sp...