deffered解决后调用的函数范围

时间:2015-10-09 09:24:25

标签: javascript jquery backbone.js jquery-deferred

我有一个函数需要等待另一个函数才能被调用,所以我尝试使用jquery deferred。例如:

firstFunction().done(secondFunction)

但是secondFunction在其范围内有一些this关键字的用法,因此当通过done调用它时,它无法访问正确的this属性。对于更多这些功能放在不同的文件中。有没有办法用secondFunction属性调用this

1 个答案:

答案 0 :(得分:1)

是的,您可以将函数绑定到正确的上下文。

对于IE9及更高版本,您可以使用本机Javascript,即Function.prototype.bind

public static void sendMessage( String message , UdpClient client)
{
Byte[] toSend = new byte[55];
toSend = Encoding.ASCII.GetBytes(message);
client.Send(toSend, toSend.Length);
}

如果由于某种原因你支持IE8,那么你需要填充它(在上面链接的mdn页面上有一个配方)或者你可以使用underscore's bind这应该是可用的因为骨干需要它。

firstFunction().done(secondFunction.bind(this));