Javascript修改在函数中传递

时间:2016-09-07 21:49:20

标签: javascript function parameters edit

是否可以修改作为参数传入的函数。

例如,让我说我有这个功能

function masterFunction(func){
    func();
}

所以我有一个调用传入函数的主函数。

所以我通过传递我的"当前功能"来调用我的主功能。如果你愿意

masterFunction(function(data){
    var variable = grabsValueFrom(data);
    if(variable && variable['status']){
        console.log('go');
    }
});

所以这就是我几乎拥有和工作的东西。但是,我现在要对我的" grabsValueFrom"进行更改。函数,它现在将有一个名为" error"的索引。如果有错误。

所以我可以去每个文件找到我的代码并实现新的错误索引(数百个文件)或者如果我可以编辑内部函数" masterFunction"我可以做一次改变,ei

function masterFunction(func){
    //somehow add this to func():
    if(typeof variable.error != 'undefined'){
        console.log('got an error');
    }
    //now that it is added let's call our function
    func();
}

我理解这不会起作用,但这是我能解释我想要做什么的最佳方式,考虑到谷歌的一切都是关于编辑变量参数,不一定是传入的函数本身。

1 个答案:

答案 0 :(得分:0)

您可以将传入的函数包装在另一个函数中。

function masterFunction(func) {
  var wrapperFunc = function (data) {
    if (typeof variable.error != 'undefined') {
      console.log('got an error');
      return;
    }
    return func(data);
  };
  wrapperFunc();
}

我们在这里并没有太多的背景,所以我不确定这是否有帮助,但似乎可能会这样。