Javascript 将变量传递给自启动函数
我发现这个答案部分解决了我的问题 我的函数的工作方式是第一个“callBackLinks”运行,然后在这里运行//do new stuff 但是我有一个变量,它是我的“旧函数”的一部分,我需要添加到新函数中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();
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不返回任何内容。但使用目标设置内容并调用其他函数。基本上,我正在尝试使用它向现有调用添加更多代码