自定义变量传递到 JS 回调

我有两个变量要传递给JS回调函数,一个派生自main函数。另一个是随机内联给定的。检查下面的示例JS代码,


function main(callback) {

 st = "mainString"

 console.log("Execution:1 # Main function, string: " + st)

 callback(this.st)

}


function myCallback(st1, st2) {

 console.log("Execution:2 # callback function, st1: " + st1 + " st2: " + st2)

}


main(myCallback.bind({"st1" : this.st, "st2" :" ad-hoc"}))

预期输出将低于预期值,以便两个输入参数都得到很好的处理并按顺序打印。


执行:1 # 主函数,字符串:主字符串


执行:2 # 回调函数,st1: mainString st2: ad-hoc


但我明白了,


执行:1 # 主函数,字符串:主字符串


执行:2 # 回调函数,st1: mainString st2: 未定义


任何帮助来解决这个问题?!


拉丁的传说
浏览 124回答 2
2回答

倚天杖

改变console.log("Execution:2 # callback function, st1: " + st1 + " st2: " + st2)自console.log("Execution:2 # callback function, st1: " + st1 + " st2: " + this.st2)示例代码段function main(callback) { st = "mainString" console.log("Execution:1 # Main function, string: " + st) callback(this.st)}function myCallback(st1) { console.log("Execution:2 # callback function, st1: " + st1 + " st2: " + this.st2)}main(myCallback.bind({"st1" : this.st, "st2" :" ad-hoc"}))

吃鸡游戏

将绑定对象文本作为参数时,应在函数上指定上下文。根据您的条件,您只需将此关键字添加到 myCallback 函数中的 st2 中,如下所示:function myCallback(st1, st2) {     console.log("Execution:2 # callback function, st1: " + st1 + " st2: " + this.st2) }希望它有帮助
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript