废话不多说,先上代码

(function($){
var Myself = (function(){
//方法的构造函数
function Myself(element, options){
this.settings = $.extend(true, $.fn.Myself.defaults, options||{});
this.element = element;
this.init();
}
//方法的原型方法
Myself.prototype = {
init:function(){

}
//在这里书写方法
}
return Myself;//一定要return,要不然无法调用构造函数
})();

$.fn.Myself = function(options){
return this.each(function(){
var me = $(this),
instance = me.data("Myself");
//判断是否实例化,如果没有,则创建实例
if(!instance){
me.data("Myself", (instance = new Myself(me, options)));
}
//根据传入的数据类型,可以调用实例里面的方法
if($.type(options) === "string") return instance[options]();
});
};

$.fn.Myself.defaults = {
//此处书写默认值
};
//这是添加了一个自动调用的方法,在需要调用的标签里面添加中括号里面的内容即可
$(function(){
$('[data-Myself]').Myself();
});
})(jQuery);

如果需要修改默认值,则可以在底部调用

$("div").Myself({
//这里写属性设置,可以覆盖默认值
});