ボイラープレートjqueryプラグインのこの共通のデザインパターンに従いました。プロトタイプのどこからでもコンストラクタ内の特権メソッドthis.service()を呼び出すのに問題があります。プロトタイプのinitだけでなく、プロトタイプ内部からthis.service()を呼び出すにはどうすればよいですか?jqueryプラグインを使用して特権メソッドを呼び出す方法。ボイラープレートのjqueryデザインパターン
私がしようとしているのは、このプラグインのこのインスタンス内でのみ影響を受け、変更されるこのプラグインの変数にアクセスできるようにすることです。この変数は別の場所に配置する必要がありますか?この変数の名前はvariableToAccessです。たぶん私はこのすべての間違って来ている。ありがとう。
プラグインでは、プラグイン
;(function ($, window, document, undefined) {
// Create the defaults once
var pluginName = 'defaultPluginName',
defaults = {
propertyName: "value"
};
// The actual plugin constructor
function Plugin(element, options) {
this.element = element;
this.options = $.extend({}, defaults, options) ;
this._defaults = defaults;
this._name = pluginName;
var variableToAccess = false;//<----should this be somewhere else?
this.service = function() {
variableToAccess = true;
};
this.init();
}
Plugin.prototype = {
init: function() {
Plugin.prototype.doSomething();
},
doSomething: function() {
this.service()//<----doesn't work
}
}
$.fn["comment"] = function (options) {
return this.each(function() {
if (!$.data(this, 'plugin_' + pluginName)) {
$.data(this, 'plugin_' + pluginName,
new Plugin(this, options));
}
});
}
})(jQuery, window, document);