提问人:John-L_. 提问时间:10/7/2023 最后编辑:Mark RotteveelJohn-L_. 更新时间:10/9/2023 访问量:31
Javascript 嵌套回调 API - 出类拔萃
Javascript nesting callback API - out of my league
问:
我正在尝试使用回调来封装 API 解决方案,如下所示:
<html>
<script>
function main ( CB ) {
function msg ( s ) {
window.alert(s);
}
CB();
}
</script>
<script>
main( function () {
msg("Hello universe"); // <--here
} );
</script>
</html>
并且 Javascript 抛出错误“未定义 msg”。我看到了问题,但不清楚如何解决它。我晃了晃身子,试着在标有“<--这里”的那一行,但结果差不多。main.msg(...)
this.msg(...)
答:
2赞
Chris Barr
10/7/2023
#1
基本上,您只需要:
- 上半场:传球
msg
CB()
-->CB(msg)
- 在下半部分:get 作为参数从
msg
main
-->main(function (msg) {...
但是,由于无论如何它已经有点令人困惑,我认为稍后命名函数和参数会增加潜在的混淆。此外,也不需要两个单独的标签。msg
<script>
在这里,它被清理了一下,我重命名了一些东西以帮助使其更清晰
function main (callbackFn) {
function msgFn(str) {
window.alert(str);
}
callbackFn(msgFn);
}
main(function (myFunc) {
myFunc("Hello universe");
});
评论
main
msg