Javascript eval()中使用的参数应该是字符串吗?
我正在编写代码,为表单创建简单的验证器 为了动态验证表单,我计划使用eval函数 正如您在javascript编码中看到的,var funcCall变成了一个函数名,参数为jquery selected dom 但这是错误的。未捕获的语法错误:意外的标识符 我想知道的是,我应该只在eval中使用String,还是有更好的方法Javascript eval()中使用的参数应该是字符串吗?,javascript,Javascript,我正在编写代码,为表单创建简单的验证器 为了动态验证表单,我计划使用eval函数 正如您在javascript编码中看到的,var funcCall变成了一个函数名,参数为jquery selected dom 但这是错误的。未捕获的语法错误:意外的标识符 我想知道的是,我应该只在eval中使用String,还是有更好的方法 如果可以使用函数指针,则不应使用eval: function emptyCheckFilter(x){} // array contains the functions,
如果可以使用函数指针,则不应使用eval:
function emptyCheckFilter(x){}
// array contains the functions, not just their names
var filters = [emptyCheckFilter];
for(var i = 0; i < filters.length; i++) {
// call the functions, without using eval
filters[i](value);
}
您不应该为此使用eval。直接使用函数实例而不是它们的名称更简单、更简洁
var Submit = {
validateFilters : [function(element) {
//this is filter to validate if it's empty or not.
console.log("this has been called");
}], // This is validator filters
doValidate : function(form) {
var children = $(form).children();
var filters = Submit.validateFilters;
$.each(children, function(key, value) { // Loop over form element
for(var i = 0; i < filters.length; i++) {
filters[i](value);
}
return false;
});
},
...
}
您的问题是,eval中使用的参数应该是字符串吗 语法 评估 参数 串 表示JavaScript表达式、语句或语句序列的字符串。表达式可以包含现有对象的变量和属性
代码中有一个无对的花括号。行emptyCheckFilter:functionelement缺少一个…此代码将不会执行。澄清:您不能在创建Submit的同时引用它。我将Submit.emptyCheckFilter放入数组中,但无法读取未定义的属性“emptyCheckFilter”
var Submit = {
validateFilters : [function(element) {
//this is filter to validate if it's empty or not.
console.log("this has been called");
}], // This is validator filters
doValidate : function(form) {
var children = $(form).children();
var filters = Submit.validateFilters;
$.each(children, function(key, value) { // Loop over form element
for(var i = 0; i < filters.length; i++) {
filters[i](value);
}
return false;
});
},
...
}