Jquery定义对象(闭包)与扩展对象成员的方法
短信预约 -IT技能 免费直播动态提醒
一、添加对象的静态属性和静态方法:
声明一个对象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定义对象( 闭包)与扩展对象成员的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341