rof*_*fls 14 javascript callback
这个问题看似重复,因为标题几乎被复制了.但是,我的问题似乎更简单,我找不到答案.
我有一个Javascript函数执行另一个回调函数,它的工作方式如下:
<script type='text/javascript'>
firstfunction(callbackfunction);
</script>
Run Code Online (Sandbox Code Playgroud)
其中回调函数定义为:
callbackfunction(response) {
if (response=='loggedin'){
// ... do stuff
}}
Run Code Online (Sandbox Code Playgroud)
但我希望它是这样的:
callbackfunction(response, param) {
if (response=='loggedin'){
// ... do stuff with param
}}
Run Code Online (Sandbox Code Playgroud)
我的问题是,传递这样的参数是否有效:
<script type='text/javascript'>
firstfunction(callbackfunction(param));
</script>
Run Code Online (Sandbox Code Playgroud)
或者我做错了吗?
jfr*_*d00 26
直接回答您的问题,这不起作用:
firstfunction(callbackfunction(param));
Run Code Online (Sandbox Code Playgroud)
这将callbackfunction立即执行并传递返回值,从执行它作为参数firstfunction,不太可能你想要的.
从您的问题中不清楚是否应该更改firstfunction()为callbackfunction()在调用回调时传递两个参数,或者是否应该创建一个使用参数调用回调函数的匿名函数.
这两个选项看起来像这样:
function firstfunction(callback) {
// code here
callback(arg1, arg2);
}
firstfunction(callbackfunction);
Run Code Online (Sandbox Code Playgroud)
要么
function firstfunction(callback) {
// code here
callback();
}
firstfunction(function() {
callbackfunction(xxx, yyy);
});
Run Code Online (Sandbox Code Playgroud)
使用匿名函数:
function foo( callback ) {
callback();
}
function baz( param ) {
console.log( param );
}
foo( function(){ baz('param') });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43029 次 |
| 最近记录: |