gpt4 book ai didi

javascript - 在私有(private)方法中使用 `this` 的 jQuery 插件设计模式?

转载 作者:行者123 更新时间:2023-11-29 17:32:05 25 4
gpt4 key购买 nike

我正在使用 Plugins Authoring 中的模式创建 jQuery 插件页:

(function($) {

$.fn.myPlugin = function(settings) {
var config = {'foo': 'bar'};

if (settings) $.extend(config, settings);

this.each(function() {
// element-specific code here
});

return this;

};

})(jQuery);

我的代码调用了几个私有(private)方法来操作 this。我使用 apply(this, arguments) 模式调用这些私有(private)方法。有没有一种方法可以设计我的插件,这样我就不必调用 apply 来将 this 从一个方法传递到另一个方法?

我修改后的插件代码大概是这样的:

(function($) {

$.fn.myPlugin = function(settings) {
var config = {'foo': 'bar'};

if (settings) $.extend(config, settings);

this.each(function() {
method1.apply(this);
});

return this;

};

function method1() {
// do stuff with $(this)
method2.apply(this);
}

function method2() {
// do stuff with $(this), etc...
}

})(jQuery);

最佳答案

我认为jQuery.proxy是为这些问题而创建的,尽管通常它与您所做的类似:

this.each(jQuery.proxy(method1, this));

关于javascript - 在私有(private)方法中使用 `this` 的 jQuery 插件设计模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2982039/

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