插件窝 干货文章 Jquery定义对象(闭包)与扩展对象成员的方法

Jquery定义对象(闭包)与扩展对象成员的方法

MyObject class function 对象 397    来源:    2024-10-11

一、添加对象的静态属性和静态方法:

声明一个对象MyObject,添加一个b的静态属性和myclick的静态方法。

(function ($) {
    MyObject = function () { };//定义对象
    $.extend(MyObject,
             { b: 5 },
             { myclick: function () { alert("c") } }
            );
})(jQuery);

//调用:
alert(MyObject.b);
MyObject.myclick();

二、添加对象的实例属性和实例方法

声明一个对象MyObject,添加一个a的实例属性和myclick的实例方法。

(function ($) {
    MyObject= function (name) {//定义类
        this.a = "abc";
        this.init(name);//相当于一构造函数,调用init方法
    };
    $.extend(MyObject.prototype, 
                {a:””,//属性
                 init:function(name){this.a=name},
                 myclick: function () { alert(this.a); }}
                );
})(jQuery);

//调用:实例化
var obj = new MyObject(“test1”)
obj.myclick();

备注:其中MyObject对象 可为任意名称。

三、循环访问对象的每个成员

for(var temp in obj){
  result+=temp+”:”+obj[temp];
}

四、定义单一模式的对象

定义类:

MyClass=function(opt){
    this.a=5;
    this.b=6;
    $.extend(this,opt);
}

定义一个普通对象:

var Myobject=new Myclass({a:7;c:b});

定义一个单一模式的对象:

_MyObject=null;
Myobject=function(opt){
    if(_MyObject==null){
        _MyObject=new MyClass(opt);
    }
    return _MyObject;
}

//调用:
var instance=Myobject({a:7;c:b});

五、给jQuery对象添加自定义方法

方法一、$.fn.xxx

$.fn.focusEnd = function(){
            this.setCursorPosition(this.val().length);
 }

调用:

$('.num').click(function(){
  $('.num').focusEnd();
});

方法二:$.fn.extend(xxx:);

$.fn.extend({
    fnClassToggle:function(options){
    var defaults={hoverClass:"default",...};
    var settings=$.extend({},defaults,options||{});
    $(this).each(function(i,n){
        var c1=settings.hoverClass;
        if(c1){
            $(n).hover(function(){$(this).addClass(c1);},
                       function(){$(this).addClass(c1);});
        }
    });
    }
});

调用:

$(".box").fnClassToggle({hoverClass:"hover"});

到此这篇关于Jquery定义对象( 闭包)与扩展对象成员的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持插件窝。