Javascript绑定()与createDelegate()的比较
假设我想将一个成员函数作为回调传递 我应该使用什么来传递上下文绑定()或createDelegate() 我是说,这个:Javascript绑定()与createDelegate()的比较,javascript,extjs,Javascript,Extjs,假设我想将一个成员函数作为回调传递 我应该使用什么来传递上下文绑定()或createDelegate() 我是说,这个: someObj.on('someEvent', this.someMethod.createDelegate(this)); 或者这个: someObj.on('someEvent', this.someMethod.bind(this)); 如果您谈论jQuery,请查看(第二个参数eventData) someObj: { someMethod: funct
someObj.on('someEvent', this.someMethod.createDelegate(this));
或者这个:
someObj.on('someEvent', this.someMethod.bind(this));
如果您谈论jQuery,请查看(第二个参数
eventData
)
someObj:
{
someMethod: function(eventData){
var me = eventData.me;
}
}
如果您谈论jQuery,请查看(第二个参数
eventData
)
someObj:
{
someMethod: function(eventData){
var me = eventData.me;
}
}
bind
函数是ECMA-262(Javascript)第5版的最新添加
createDelegate
在任何版本中都不是本机JavaScript方法
所以最好使用bind
。并用于未实现的浏览器
另外,如果你使用任何流行的框架,它可能有这样的方法。例如,jQuery有
$。proxy
静态方法也有同样的功能。绑定函数是ECMA-262(Javascript)第5版的最新添加
createDelegate
在任何版本中都不是本机JavaScript方法
所以最好使用bind
。并用于未实现的浏览器
另外,如果你使用任何流行的框架,它可能有这样的方法。例如,jQuery有相同的$.proxy
静态方法。假设您使用的是旧版本的ExtJS(例如3.4.0),那么bind
和createDelegate
的功能几乎没有区别。最大的区别在于,bind
不适用于较旧的浏览器
需要注意的一点是,createDelegate
在较新版本的ExtJS中不可用,因为框架已经不再考虑更改本机对象原型。它已被Ext.Function.bind
替换
*)本机Function.prototype.bind
和Ext.Function.bind
在如何处理绑定到函数的参数方面存在一些差异。不过,它看起来并不会影响您的代码。阅读文档以查看确切的差异
函数.prototype.bind的MDN链接
:
Function.prototype.createDelegate
(由ExtJS添加)的ExtJS 3.4.0链接
Ext.Function.bind的extjs4.0.7链接
假设您使用的是旧版本的ExtJS(例如3.4.0),那么bind
和createDelegate
的功能几乎没有区别。最大的区别在于,bind
不适用于较旧的浏览器
需要注意的一点是,createDelegate
在较新版本的ExtJS中不可用,因为框架已经不再考虑更改本机对象原型。它已被Ext.Function.bind
替换
*)本机Function.prototype.bind
和Ext.Function.bind
在如何处理绑定到函数的参数方面存在一些差异。不过,它看起来并不影响您的代码。阅读文档以查看确切的差异
函数.prototype.bind的MDN链接
:
Function.prototype.createDelegate
(由ExtJS添加)的ExtJS 3.4.0链接
Ext.Function.bind的extjs4.0.7链接
您使用的是什么框架?你的意思是在jQuery中吗?createDelegate
不是本机JavaScript方法。这取决于createDelegate
的功能。如果你或任何访问者对来自AJAX.NET的Function.createDelagate感兴趣,请参阅这篇详细的文章:你在使用什么框架?您的意思是在jQuery中吗?createDelegate
不是本机JavaScript方法。这取决于createDelegate
的功能。如果您或任何访问者对AJAX.NET中的Function.createDelagate感兴趣,请参阅以下详细文章: