我试图传递一些参数的函数用作回调,我怎么能这样做?
这是我的尝试: 函数tryMe(param1, param2) { Alert (param1 + " and " + param2); } 函数callbackTester(回调,param1, param2) { 回调(param1 param2); } callbackTester(tryMe, "hello", "goodbye");
我试图传递一些参数的函数用作回调,我怎么能这样做?
这是我的尝试: 函数tryMe(param1, param2) { Alert (param1 + " and " + param2); } 函数callbackTester(回调,param1, param2) { 回调(param1 param2); } callbackTester(tryMe, "hello", "goodbye");
当前回答
在这个简单的例子中使用curry函数。
const BTN = document.querySelector('button') const RES = document.querySelector('p') const changeText = newText => () => { RES.textContent = newText } BTN。addEventListener(“点击”,changeText(点击!)) <按钮> ClickMe > < /按钮 < p >不点击< p >
其他回答
我试图传递一些参数的函数用作回调,我怎么能这样做?
我认为他是在暗示他想调用这个callbackTester函数(tryMe, "hello", "goodbye")。为此,我们可以使用Rest操作符(…)。该操作符接受函数接收到的参数,并将它们转储到一个实数组中,我们将在回调函数中使用该数组进行访问。
现在,其他一些开发人员可能也认为我们可以使用参数"array"。那很好,但我们要小心。Arguments不是一个真正的数组,而是一个具有length属性的类数组对象。
下面是一个使用Rest操作符的工作代码片段:
函数tryMe(参数){ console.log(参数。加入(',')); } 函数callbackTester(回调,…params) { 回调(params); } callbackTester(tryMe, 'hello', 'goodbye', 'hi again'); callbackTester(tryMe, 'hello', 'goodbye'); callbackTester (tryMe '你好');
我一直在寻找同样的东西,最后得到了答案如果有人想要看的话,这是一个简单的例子。
var FA = function(data){
console.log("IN A:"+data)
FC(data,"LastName");
};
var FC = function(data,d2){
console.log("IN C:"+data,d2)
};
var FB = function(data){
console.log("IN B:"+data);
FA(data)
};
FB('FirstName')
另一个问题也贴在这里
只需使用bind()函数,该函数主要用于设置this值。但是,我们也可以使用它来传递参数而不调用函数,因为bind()返回一个带有提供的参数序列的新函数。
例子:
函数foo(param1, param2, param3) { console.log(param1, param2, param3); } setTimeout (foo。bind(null, 'foo', 'bar', 'ba '), 1000);
在上面的代码片段中,setTimeout函数有两个参数,一个是回调函数,另一个是函数被调用的最小时间(以ms为单位),因此在传递回调函数时,我们将使用bind并指定参数
注意:bind的第一个参数是我们想要为此设置的值,因为我们对它不感兴趣,传递的是null,所以bind中的后续参数将是回调的参数。
//Suppose function not taking any parameter means just add the GetAlterConfirmation(function(result) {});
GetAlterConfirmation('test','messageText',function(result) {
alert(result);
}); //Function into document load or any other click event.
function GetAlterConfirmation(titleText, messageText, _callback){
bootbox.confirm({
title: titleText,
message: messageText,
buttons: {
cancel: {
label: '<i class="fa fa-times"></i> Cancel'
},
confirm: {
label: '<i class="fa fa-check"></i> Confirm'
}
},
callback: function (result) {
return _callback(result);
}
});
function tryMe(param1, param2) {
console.log(param1 + " and " + param2);
}
function tryMe2(param1) {
console.log(param1);
}
function callbackTester(callback, ...params) {
callback(...params);
}
callbackTester(tryMe, "hello", "goodbye");
callbackTester(tryMe2, "hello");
阅读更多关于扩展语法的信息