JS巧用 new Function() 把字符串(string)轉對象(object)

1.方法

關鍵就一句:var obj=new Function('return '+str)();

var str='{name:"Helen",age:"22",sex:"female"}';

var obj=new Function('return '+str)();
console.log(obj.name);//Helen

2.使用背景

div自定義屬性爲上述str(一般作爲查詢參數條件對象,但作爲自定義屬性應該是字符串)時,後期用到這個對象需做上述轉換。例:

<div data-options="{scope:'1',regionCode:'370000',timeCycle:'month'}" onclick="search(this)"></div>

 

function search(e){

var search_condition=new Function('return'+$(e).attr('data-options'));

//查詢ing

}

3.關於JS中的new Function()

new Function()的參數是某個字符串,在使用時,編譯器會將參數中的字符串當作正常的腳本代碼來執行。利用這種方法來把字符串轉對象,可以簡單的想象成就是new出一個對象。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章