[ javascript ] HHJsLib!

23 篇文章 0 订阅
3 篇文章 0 订阅
/**
 * $Id$
 * @title HHJsLib
 * @description 基地Js库基础类
 * @author xjiujiu (xjiujiu@foxmail.com)
 * @create 2012-08-13 9:30:00
 */
(function($) {
	//事件注册及自动初始化工具脚本
	var HHJsLib = window.HHJsLib = function() {
		//事件注册,寄存器[ 主要将需要执行的方法, 都保存到一个数组里面 ]
		var _registered 	= {
			init: []
		};
		
		return {
			//初始化
			init: function() {
//[这里会遍历这个寄存器中的数组,然后依次调用]
				$.each(_registered.init, function(loc, item) {
					//item 为一个数组,item[0] 为对象,item[1]为方法
					//call方法,表示用item[0]调用item[1]
					item[1].call(item[0]);
				});
			},
			//内置通过ID来获取元素对象的方法
			$$: function(id) {
				return document.getElementById(id);
			},
			//扩展方法
//[一个小小的扩展方法,不过依旧存在问题,没有考虑prototype上的方法,这里应该用haswonprotype判断下]
			extend: function(props) {
				for(var i in props) {
					if(undefined != props[i]) {
						this[i] 	= props[i];
					}
				}
			},
			//事件的注册
//[这个算是核心了,这里需要是将当前的方法压入存储器中]
			register: function(obj, func, attr) {
				if(!_registered[attr]) {
					_registered[attr] 	= [];
				}
				//向_registered中添加数组.
				_registered[attr].push([obj, func]);
			}
		};
	}();
//[那么这还有一个注意点,就是这里使用了一个 自启动的方法,返回一个对象,而该对象又有几个方法。那些方法中又关联中外部函数的存储器对象,所以就有了一个闭包的东西]
	/*文档加载完成,调用初始化方法
	初始化,调用init()方法,而在你的子类中,需要将你的方法注册到这个父类的init数组中来,
	那么每次加载的时候就会自动加载子类的init()。
	这里需要注意的就是子类的init();中需要注册需要用到的方法..
	如: var comments = {
        init:function(){
           this.update();
            this.del();
        },
        update:function(){
            alert("update");
        },
        del:function(){
           alert("delete");
        }
    };*/
$(function() { HHJsLib.init(); });
//这里需要将这个文件第最先加入,否则一切会不起作用。
})(jQuery);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值