如何在没有eval()的情况下执行此javascript代码?
在这种情况下eval()危险吗?或者有更好的方法吗?为什么不使用函数呢如何在没有eval()的情况下执行此javascript代码?,javascript,eval,Javascript,Eval,在这种情况下eval()危险吗?或者有更好的方法吗?为什么不使用函数呢 function run(conditions) { /* --- code --- */ var pages_counter = parseInt(localStorage.getItem('onload_counter')); var seconds_counter = parseInt(JSON.parse(localStorage.getItem("waiting_for_modal"))[0])+1; /* ---
function run(conditions) {
/* --- code --- */
var pages_counter = parseInt(localStorage.getItem('onload_counter'));
var seconds_counter = parseInt(JSON.parse(localStorage.getItem("waiting_for_modal"))[0])+1;
/* --- code --- */
var vared = eval(conditions.test.join(' ')) ? true:false;
if(vared){
jQuery('#myid').fadeOut(500);
}
}
var conditions = {
/* --- code --- */
"test": ["( pages_counter > 1 && seconds_counter > 10 )||( seconds_counter > 40 && pages_counter === 1 )"]
};
run(conditions);
您可以传递数字,例如,
1
,10
,40
,1
,而不是同时传递变量names@Nina_Scholz,ReferenceError:onload_计数器未定义,请查看定义或使用onload_计数器的位置。如果没有更多关于代码其余部分的知识,我将无能为力。
var conditions = {
test: function (pages_counter, seconds_counter) {
return (pages_counter > 1 && seconds_counter > 10) || (seconds_counter > 40 && pages_counter === 1);
}
};
// test with
var vared = conditions.test(pages_counter, seconds_counter);