繁体   English   中英

JavaScript-在自身内部传递函数

[英]javascript - passing a function within itself

我有一个JavaScript函数,称为“ updateData”,我将其作为参数传递给函数“ updateData”本身内的另一个函数“ process”。

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()中创建的按钮。

这会引起任何问题吗? 这是正确的吗?

(到目前为止,我还没有遇到任何问题。但是我是函数编程的新手,我想确保这样做不会引起任何问题)。

这将起作用。 之所以起作用,是因为在编写此函数时仅定义了该函数而不对其进行评估。 因此,在调用此函数时, updateData变量已经具有对函数对象的引用,并且该引用将传递给您在内部定义的对象。

是的你可以。 函数可以在其定义内引用自身。 因为没有它,您将无法进行递归调用。

由于以下代码可以正常工作:

var updateData= function() {
    if(someCondition){
        updateData();
    } else {
        return;
    }
}

以下代码也将起作用:

var updateData= function() {
    process(updateData);
}

要么

var updateData= function() {
    var param = {'updateFn' : updateData};
    process(param);
}

您的代码绝对可以正常工作。 只要确保它不会陷入无限循环。

会的。

var upDateData = function() {
  var params = { data : upDateData };
  alert(params.data);
}

upDateData();

但是,如果按钮在同一页面中呈现,则可以使用委托来处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM