为了账号安全,请及时绑定邮箱和手机立即绑定

将 Javascript 函数作为参数传递 - 此逻辑如何工作?

将 Javascript 函数作为参数传递 - 此逻辑如何工作?

慕桂英546537 2022-08-27 14:10:44
我不明白下面的 responseHandler 函数是如何在提交付款表单后从 API 调用接收响应的。以下是代码的简要摘要:var PaymentThing = function(e) {    this["clientCallback"] = e;    return {        createToken: function() {            // HTTP GET URL is generated and then an HTML script element is appended to the page head            var a = "https://example.com/securitytoken?creditcard=xxxx?callback=PaymentThing.callback";            var f = document.createElement("script");            f.src = a;            document.getElementsByTagName("head")[0].appendChild(f)        },        callback: function(e) {            this["clientCallback"](e.status, e.results)        }    }}var responseHandler = function(status, response) {    // How does this even work?    console.log(response, status);}// Form SubmissionjQuery('#checkout_payment_form').submit(function() {    PaymentThing.createToken(responseHandler);}所以我的问题是,responseHandler函数如何接收来自HTTP GET调用的响应?在我看来,HTTP调用甚至没有被进行。我只看到一个URL被添加到HTML脚本元素(使用createToken函数),URL甚至从未被调用/执行(但不知何故?)。另外,当我没有看到(状态,响应)参数被传递到响应处理程序函数调用中时,它们如何传递到响应处理程序函数中?我不明白这里的操作逻辑或顺序,任何人都可以解释一下发生了什么吗?编辑:好的,我想我现在看到了响应处理程序函数如何接收状态和响应参数。我编辑了上面的代码,以显示生成的HTTP URL中有一个回调函数。但是,该URL是如何被调用的?在我看来,它仍然像是惰性的,并且被卡在页面的HTML中并且没有激活。
查看完整描述

2 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

我认为,如果您运行该函数并将结果存储在一个变量中,该变量可以作为参数调用,它将考虑它。responseHandlerPaymentThing.createToken()



查看完整回答
反对 回复 2022-08-27
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

那里的代码都没有调用 。将其传递给方法没有意义,因为它完全忽略了所有参数。responseHandlercreateToken

添加到页面的脚本可能会尝试调用名为 的全局函数,但是如果不检查脚本,就无法分辨。responseHandler


查看完整回答
反对 回复 2022-08-27
  • 2 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信