weiclin大大給的網址內有標明用法了~~
我趁回答問題自己也來實做看看
//在全域宣告一個變數,他會跑進window的物件中,我們把該變數當作特性去讀寫他
//過程:
var i = "0";
this['str'+i] = 100;
//結果:
console.log(str0); //會回傳100
//function內也是一樣
function func(){
var a = '123';
for(i=0;i<=5;i++){
this['a'+i] = i;
console.log(this['a'+i]);
}
}
func();
//會印出6次結果,分別是0~5
嗯嗯,weiclin大大給的連結超實用的,我搜了一整天都沒看到這篇!
稍微提醒一下, function 裡面的 this 會因為用法而不同, 如果你沒取到預期的變數, 看是不是這個原因:
function func() {
console.log(this.constructor.name);
}
// this === window
func();
// this === func
var obj = new func();
順便問一下,我知道有時候動態變數名對程式來說是有用的,但是感覺會降低可讀性。
這種寫法用在團隊中會不會被公幹?XD
分享一下,動態變數我們團隊蠻常用的,
尤其是在屬性是中文的時候...恩好像怪怪的,哈哈哈
然後不推薦直接在全域的this上添加屬性,有可能汙染其他全域的變數
我是會標記該區塊功能是幹嘛的以防自己忘記,團隊上應該是還好吧?只要別人看的懂即可。
這次我的狀況,就不適合用this,不然2000多組變數可能會出現無法預估的錯誤。