Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将变量传递给自启动函数_Javascript_Jquery_Function - Fatal编程技术网

Javascript 将变量传递给自启动函数

Javascript 将变量传递给自启动函数,javascript,jquery,function,Javascript,Jquery,Function,我发现这个答案部分解决了我的问题 我的函数的工作方式是第一个“callBackLinks”运行,然后在这里运行//do new stuff 但是我有一个变量,它是我的“旧函数”的一部分,我需要添加到新函数中 function callBackLinks(trgt){ //do stuff in here with trgt } var callBackLinks = function(oldFn){ return function(){ oldFn();

我发现这个答案部分解决了我的问题

我的函数的工作方式是第一个“callBackLinks”运行,然后在这里运行//do new stuff

但是我有一个变量,它是我的“旧函数”的一部分,我需要添加到新函数中

function callBackLinks(trgt){

     //do stuff in here with trgt

}

var callBackLinks = function(oldFn){

    return function(){
        oldFn();

        //do new stuff here
    };
}(callBackLinks);



 callBackLinks(trgt);

如何在第二个自启动函数中使用变量“trgt”?

只需在新返回的函数中传递它:

function callBackLinks(target){
  //do stuff in here with target
}

callBackLinks = function(oldFn) {
  return function(target){
    var links = oldFn(target);
    // Do new stuff here with `target` and `links`
    // including potentially, `return links`
  };
}(callBackLinks);

callBackLinks(target);
如果需要使用两个或三个以上的参数(或者
callBackLinks
可能会更改它接受的参数),可以使用调用
oldFn

return function(target) {
  var links = oldFn.apply(this, arguments);
  // Do things with `target` and `links` here
};
然后,如果
callBackLinks
更改为接受第二个
options
参数,则调用者仍将获得预期的行为(但您不必处理不关心的参数)

编辑 我增加了一个例子:

函数回调链接(目标){
//在这里和target一起做事
target.innerHTML+=“调用了回调链接\n”
}
callBackLinks=函数(oldFn){
返回函数(目标){
var links=oldFn.apply(这是参数);
//在这里用'target'和'links'做新东西`
//可能包括“返回链接”`
target.innerHTML+=“已调用重写的函数\n”
返回链接;
};
}(回拨链接);
回调链接(document.getElementById(“屏幕”))

这是屏幕:

只需在新返回的函数中传递它:

function callBackLinks(target){
  //do stuff in here with target
}

callBackLinks = function(oldFn) {
  return function(target){
    var links = oldFn(target);
    // Do new stuff here with `target` and `links`
    // including potentially, `return links`
  };
}(callBackLinks);

callBackLinks(target);
如果需要使用两个或三个以上的参数(或者
callBackLinks
可能会更改它接受的参数),可以使用调用
oldFn

return function(target) {
  var links = oldFn.apply(this, arguments);
  // Do things with `target` and `links` here
};
然后,如果
callBackLinks
更改为接受第二个
options
参数,则调用者仍将获得预期的行为(但您不必处理不关心的参数)

编辑 我增加了一个例子:

函数回调链接(目标){
//在这里和target一起做事
target.innerHTML+=“调用了回调链接\n”
}
callBackLinks=函数(oldFn){
返回函数(目标){
var links=oldFn.apply(这是参数);
//在这里用'target'和'links'做新东西`
//可能包括“返回链接”`
target.innerHTML+=“已调用重写的函数\n”
返回链接;
};
}(回拨链接);
回调链接(document.getElementById(“屏幕”))

这是屏幕:

只需在新返回的函数中传递它:

function callBackLinks(target){
  //do stuff in here with target
}

callBackLinks = function(oldFn) {
  return function(target){
    var links = oldFn(target);
    // Do new stuff here with `target` and `links`
    // including potentially, `return links`
  };
}(callBackLinks);

callBackLinks(target);
如果需要使用两个或三个以上的参数(或者
callBackLinks
可能会更改它接受的参数),可以使用调用
oldFn

return function(target) {
  var links = oldFn.apply(this, arguments);
  // Do things with `target` and `links` here
};
然后,如果
callBackLinks
更改为接受第二个
options
参数,则调用者仍将获得预期的行为(但您不必处理不关心的参数)

编辑 我增加了一个例子:

函数回调链接(目标){
//在这里和target一起做事
target.innerHTML+=“调用了回调链接\n”
}
callBackLinks=函数(oldFn){
返回函数(目标){
var links=oldFn.apply(这是参数);
//在这里用'target'和'links'做新东西`
//可能包括“返回链接”`
target.innerHTML+=“已调用重写的函数\n”
返回链接;
};
}(回拨链接);
回调链接(document.getElementById(“屏幕”))

这是屏幕:

只需在新返回的函数中传递它:

function callBackLinks(target){
  //do stuff in here with target
}

callBackLinks = function(oldFn) {
  return function(target){
    var links = oldFn(target);
    // Do new stuff here with `target` and `links`
    // including potentially, `return links`
  };
}(callBackLinks);

callBackLinks(target);
如果需要使用两个或三个以上的参数(或者
callBackLinks
可能会更改它接受的参数),可以使用调用
oldFn

return function(target) {
  var links = oldFn.apply(this, arguments);
  // Do things with `target` and `links` here
};
然后,如果
callBackLinks
更改为接受第二个
options
参数,则调用者仍将获得预期的行为(但您不必处理不关心的参数)

编辑 我增加了一个例子:

函数回调链接(目标){
//在这里和target一起做事
target.innerHTML+=“调用了回调链接\n”
}
callBackLinks=函数(oldFn){
返回函数(目标){
var links=oldFn.apply(这是参数);
//在这里用'target'和'links'做新东西`
//可能包括“返回链接”`
target.innerHTML+=“已调用重写的函数\n”
返回链接;
};
}(回拨链接);
回调链接(document.getElementById(“屏幕”))

这是屏幕:


callBackLinks前面的
var
是不可操作的(并且具有误导性),我会删除它。(在您的代码中,不在问题中。)
callBackLinks
前面的
var
是不可操作的(并且具有误导性),我将删除它。(在您的代码中,不在问题中。)
callBackLinks
前面的
var
是不可操作的(并且具有误导性),我将删除它。(在您的代码中,不在问题中。)
callBackLinks
前面的
var
是不可操作的(并且具有误导性),我将删除它。(在您的代码中,而不是在问题中)或更一般地,如果需要
return function(){return oldFn.apply(this,arguments);}(+1)回调链接不返回任何内容。但使用目标设置内容并调用其他函数。基本上,我正在尝试使用它向已经存在的回调函数添加更多代码。当我添加
返回函数(trgt){oldFn(trgt);}
时,它仍然无法识别trgt。执行此操作<代码>返回函数(trgt){oldFn(trgt);console.log(trgt);
吐出的“callBackLinks”不是实际的DOM对象。好吧,没关系,你们是对的。我只是回顾了原始的回调函数并接受了两个参数。如果需要的话,可以更一般地使用
返回函数(){return oldFn.apply(这个,参数);};
(+1)callBackLinks不返回任何内容。但使用目标设置内容并调用其他函数。基本上,我正在尝试使用它向现有调用添加更多代码