如何设置上下文“this”在函数内部自定义对象?
考虑这样的代码:
external_function = function() {
$(this).something2();
}
$('.someclass').live('click', function() {
$(this).something1();
external_function(); // wrong way
});
我可以添加一个新方法:
external_function = function() {
$(this).something2();
}
$('.someclass').live('click', function() {
$(this).something1();
this.external_function = external_function;
this.external_function(); // this will work
});
但它似乎对我来说有开销。是否有一种完美且安全的方式使用自定义上下文运行 external_function ?
Consider code like this:
external_function = function() {
$(this).something2();
}
$('.someclass').live('click', function() {
$(this).something1();
external_function(); // wrong way
});
I can add a new method:
external_function = function() {
$(this).something2();
}
$('.someclass').live('click', function() {
$(this).something1();
this.external_function = external_function;
this.external_function(); // this will work
});
but it seems having overhead to me. Is there a perfect and safe way run external_function with custom context?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您应该阅读有关
apply
和call
的内容:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/callYou should read about
apply
andcall
: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call