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

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

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

声明一个对象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定义对象( 闭包)与扩展对象成员的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持易知道(ezd.cc)。

推荐阅读