JavaScript利用eval,拼出一个对象属性并给其赋值

var getEval=function (data) {
    var newData='Project';
    for (var i=0;i<arguments.length;i++) {
        newData+='["'+arguments[i]+'"]';
    }
    if (eval(newData) < 8) {
        eval(newData+'++');
    }  
    return eval(newData);
}
var Project={
num:1,
arr:[{
num:8
},{
num:2
}]
}

alert(getEval('num'));
alert(getEval('arr','1','num'));

就这样,难是不难,就是得多转几个弯而已。归根结底就是把一切转换成字符串,然后用eval解析。比如eval(newData+'++'),如果写成eval(newData++)就报错。因为newData变量的值是字符串,而++是运算符。

未经允许不得转载:前端撸码笔记 » JavaScript利用eval,拼出一个对象属性并给其赋值

上一篇:

下一篇: