我有一个名为" updateData"的JavaScript函数。我作为参数传递给另一个函数" process"在函数" updateData"本身。
var updateData = function(){
var bean= {
"name" : $("#name").val(),
"sort" : $('#sort').val(),
"reference" : "sample"
};
var param = {
'bean' : bean,
'reference' : "sample" ,
'ajaxtype' : 'POST',
'url' : 'samp.json',
'valFn' : validateData,
'updateFn' : updateData,
'populateFn' : populateData
};
process(param );
};
我这样做是因为我需要绑定函数" updateData"到process()中创建的按钮。
这会导致任何问题吗?这是对的吗?
(到目前为止我还没有遇到任何问题。但我是函数式编程的新手,我想确保这样做不会造成任何问题。)
答案 0 :(得分:2)
这会奏效。这样做的原因是函数只是在编写此函数时定义而不是评估。因此,当您调用此函数时,updateData
变量已经具有对函数对象的引用,并且该引用将传递给您在其中定义的对象。
答案 1 :(得分:1)
是的,你可以。函数可以在其定义中引用自身。因为没有它,你将无法进行递归调用。
由于以下代码可以工作:
var updateData= function() {
if(someCondition){
updateData();
} else {
return;
}
}
以下代码也可以使用:
var updateData= function() {
process(updateData);
}
OR
var updateData= function() {
var param = {'updateFn' : updateData};
process(param);
}
您的代码将完全正常工作。请确保它不会进入无限循环。
答案 2 :(得分:0)
它会起作用。
var upDateData = function() {
var params = { data : upDateData };
alert(params.data);
}
upDateData();
但是如果按钮在同一页面中呈现,那么你可以使用委托来处理它。