我有两个变量要传递给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: 未定义任何帮助来解决这个问题?!
2 回答
倚天杖
TA贡献1828条经验 获得超3个赞
改变
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"}))
吃鸡游戏
TA贡献1829条经验 获得超7个赞
将绑定对象文本作为参数时,应在函数上指定上下文。根据您的条件,您只需将此关键字添加到 myCallback 函数中的 st2 中,如下所示:
function myCallback(st1, st2) {
console.log("Execution:2 # callback function, st1: " + st1 + " st2: " + this.st2)
}希望它有帮助
添加回答
举报
0/150
提交
取消
