我正在开发一个不需要选择器的 jQuery 插件,所以我只是将它添加到全局 jQuery 命名空间。
我在插件的公共方法之间共享内部实例变量时遇到问题。例如,我希望能够从 .init 方法访问 $.MyPlugin.settings。
这是插件代码:
(function($) {
$.MyPlugin = function(options) {
var defaults = {
username: '',
password: ''
}
var plugin = this;
plugin.settings = {};
plugin.init = function() {
plugin.settings = $.extend({}, defaults, options);
}
plugin.init();
}
$.MyPlugin.init = function(callback) {
console.log(this.settings); // undefined
callback();
}
}(jQuery));
在 main.js 中,我有:
$(document).ready(function() {
$.MyPlugin({
username: 'myuser',
password: 'mypass'
});
$.MyPlugin.init(function() {
console.log('hi');
});
这将返回:
undefined
hi