是否有一种方法可以将变量传递给回调函数而不将其包装在另一个函数中?
Is there a way to pass a variable to a callback function without wrapping it in another function?
我希望我问对了。
我有jQuery行:$("main").load("link.html", runFunction);
就可以了。但是现在我想传递一个变量给函数runFunction
,但是做
$("main").load("link.html", runFunction(myvar));
不起作用,因为它正在被立即调用。我知道我可以写
$("main").load("link.html", function() {runFunction(myvar)});
但是我想知道是否有任何其他方法可以将变量发送到runFunction,而不需要额外的包装函数
在底层,创建一个新函数是不可避免的,因为您传入的"bound"参数与某个作用域绑定在一起,并且您将调用的函数将在不同的作用域中调用。要实现这一点,您需要一个闭包,您可以使用内联匿名函数创建它。
也就是说,JavaScript通过Function.prototype.bind
调用使这更容易。在MDN上查看bind()
bind
允许您创建前导绑定参数(即,您不能使用它将第二个参数绑定到变量,但不能将第一个参数绑定)。
$("main").load("link.html", function() {runFunction(myvar)});
是
$("main").load("link.html", runFunction.bind(window, myvar)});
请注意,传递给bind
的第一个参数是thisArg
,这是一个JavaScript对象,它将与函数体中的this
参数相关联。
相关文章:
- 如何将一个JavaScript函数回调为多个函数
- Meteor:异步函数回调异常:onAfterAction
- 从类方法中的 ajax post 函数回调函数更改 javascript 类属性
- jQuery动画函数回调错误
- jquery在html属性中添加函数回调,以便在其他事件中调用
- jquery getjson 函数:回调返回错误的字符串
- postMessage - 多个 postMessage 事件/函数/回调
- 在 Promise 调用的错误函数回调后附加对象的用法是什么
- 单击事件后的 JavaScript 函数回调
- 设置超时函数回调静态变量
- Jquery UI 模式匿名函数回调以打开对话框
- 函数回调、局部变量和 chrome.storage.sync.get
- Jquery Ajax 没有拾取选项参数中指定的函数回调
- 如何在 javascript 中进行函数回调
- 用函数回调封装JavaScript
- jQuery JavaScript嵌套异步函数回调
- Node.js-匿名函数回调
- 函数回调超出范围
- php代码的Javascript函数回调
- 如何使用函数回调在更改时提交表单