gpt4 book ai didi

javascript - 有没有比创建闭包从内部访问外部函数更干净/优雅的方法?

转载 作者:行者123 更新时间:2023-11-30 18:10:53 25 4
gpt4 key购买 nike

我有一些代码.. ala

$.fn.someObj= function(){
this.opt = {
whatever : 'somevalue',
whateve2 : 'more values'
}
this.someMethod = function(){
//do something
$(someElem).bind('click',function(){
this.someOTHERMethod(); <----- ISSUE HERE
})
}
this.someOTHERMethod = function(){
// do more stuff

}
this.init = function(data){
$.extend(this.opt, data);
this.someMethod();
};

};

我可以创建闭包并解决问题;

var that = this;
//code
that.someOTHERMethod(); <--- works

或者如果我从方法中删除“this”:

someOTHERMethod = function(){}

and just call it: someOTHERMethod(); < ---- works

但我想知道是否有更优雅的方法来获得不带闭包的外部函数?有什么想法吗?

最佳答案

你不需要闭包,你可以只传递一个对你的函数的引用,并消除包装匿名函数:

$(someElem).on('click', this.someOTHERMethod);

如果你希望 someOTHERMethod 中的 this 值是 someObj,那么也使用 $.proxy,根据 zzzzBov 的回答。

关于javascript - 有没有比创建闭包从内部访问外部函数更干净/优雅的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14595913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com