JavaScript處理變量命名的參數對象

問題描述:在開發過程中,遇到一個給對象賦值的問題,參數是通過循環變量的方式進行處理。

js 重要函數 window,eval

  • 1、window 定義全局變量。
  • 2、eval() 函數計算 JavaScript 字符串,並把它作為腳本代碼來執行。

如果參數是一個表達式,eval() 函數將執行表達式。如果參數是Javascript語句,eval()將執行 Javascript 語句。

另外,window使用註意點如下圖:

事例:

// 用數組中的變量定義參數
let need_arr = ['a1','b1','c1','d2','e2'];
for (let i = 0; i < need_arr.length-1; i++) {
  let need_name = need_arr[i];  //生成函數名
  window[need_name] = '賦值參數,也可以是對象'+i;
  // 也可以寫成 window.need_name = '賦值參數,也可以是對象'+i;
}
console.log(a1);
console.log(b1);
console.log(c1);
console.log(d2);
console.log(e2);

打印結果:

賦值參數,也可以是對象0
賦值參數,也可以是對象1
賦值參數,也可以是對象2
賦值參數,也可以是對象3
賦值參數,也可以是對象4

說明:上面實現的效果是,以 need_arr 數組裡的值作為變量,並給變量賦值。

如果 賦值是對象的話,需要取對象裡的元素(使用函數)。 接著使用上面定義的數組,事例如下:

let need_arr = ['a1','b1','c1','d2','e2'];
for (let i = 0; i < need_arr.length-1; i++) {
  let need_name = need_arr[i];  //生成函數名
  window[need_name] = '賦值參數,也可以是對象'+i;
}
const have_arr=[]; 

for (let i = 0; i < need_arr.length-1; i++) {
  let have_name = need_arr[i];   //生成函數名
  let need_obj = eval("("+have_name+")")
  have_arr[need_arr[i]] = need_obj; // 如果是對象科室使用其函數
}
console.log(have_arr)

打印結果:

說明:上面是把need_arr裡的值作為變量並賦值,然後,再把生成的變量(如a1)的值(可以是字符串,也可以是對象。如 "賦值參數,也可以是對象0")作為值賦值給對應的變量(如a1);

如果把上面代碼中的 have_arr[need_arr[i]] = need_obj; // 如果是對象科室使用其函數 這一行改為have_arr[need_arr[i]] = need_obj.length; // 如果是對象科室使用其函數,可以根據下面的結果,對比一下:

到此這篇關於js處理變量命名的參數對象的文章就介紹到這瞭,更多相關js變量命名參數內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: