日期:2014-05-16  浏览次数:20418 次

js常用方法或对象封装------待续中。。。。
/**
 * @author wsf
 */
;(function (){
	/**
	 * 模拟继承
     * @param {Object} dest
     * @param {Object} src
	 */
	function extend(dest,src){
		for(var i in src)
		   dest[i] = src[i];
		return dest;
	}
	
	extend(Object.prototype,{extend:extend});//为object添加extend方法
	
	var arrayAddM = {
		/**
		 * 为array对象添加indexOf方法
         * @param {Object} v
		 */
		indexOf : function (v){
			for(var i = 0; i < this.length;i++){
				if(this[i]===v)
				  return i;
			}
		},
		/**
		 * 为array添加get方法
         * @param {Object} v
		 */
		get : function (v){
			alert(this.indexOf(v));
			return this[this.indexOf(v)]
		},
		/**
		 *为array增加put方法:将指定元素插入到数组指定下标出 
         * @param {Object} v
         * @param {Object} idx
		 */
		put : function (v,idx){
			return this.slice(idx,0,v)
		},
		/**
		 * 数组删除元素方法
         * @param {Object} v
		 */
		remove : function (v){
			return this.slice(this.indexOf(v),1)
		},
		/**
		 * 是否包含指定元素
         * @param {Object} v
		 */
		contain : function (v){
			return this.indexOf(v)>=0
		}
	}
	
	Object.extend(Array.prototype,arrayAddM);//为数组对象添加方法
	
	var stringAddM = {
		/**
		 * int value
		 */
		intVal : function (){
			return parseInt(this);
		},
		/**
		 * float value
		 */
		floatVal : function(){
			return parseFloat(this);
		},
		/**
		 * 判断是否为数字型
		 */
		isNum : function (){
			return isNaN(this*1);
		}
	}
	
	Object.extend(String.prototype,stringAddM);//为string 对象添加加方法
	
	
	var mapAddM = {
		store : new Array,
		/**
		 * entry函数
         * @param {Object} key
         * @param {Object} val
		 */
		entry : function (key,val){
			this.key = key;
			this.value = val;
		},
		//put方法
		put : function (key,val){
			this.store[this.store.length] = new this.entry(key,val);
		},
		//get方法
		get : function (key){
			for(var i = 0 ; i < this.store.length;i++){
				if(this.store[i].key === key)return this.store[i].value;
			}
		},
		//remove方法
		remove : function (key){
			for(var i = 0 ; i < this.store.length;i++){
				this.store[i].key === key && this.store.splice(i,1);
			}
		},
		//keyset
		keySet : function (){
			var keyset = new Array;
			for(var i = 0 ;i< this.store.length;i++)
			   keyset.push(this.store[i].key);
			return keyset;
		},
		//valset
		valSet : function (){
			var valSet = new Array;
			for(var i = 0 ; i < this.store.length;i++)
			   valSet.push(this.store[i].value);
			return valSet;
		},
		//clear
		clear : function (){
			this.store.length = 0;
		},
		//size 
		size : function (){
			return this.store.length;
		}
	}
	Map = function (){};
	Map.prototype = {};
	Map.constructor = new Map();
	Object.extend(Map.prototype,mapAddM);//为Map增加方法
})();

?