JavaScript 对象扩展代码
JavaScript 扩展代码
更具需要写的几个扩展。
扩展核心自执行函数 Object.extend
/** * 对象扩展体 参数是 {属性|方法:属性值|方法体} * 只执行实现 * * 实例对基础对象 进行新加一个alert_方法 实现弹出当前的对象 对数组。以及string都有效 * 实例 Object.extend({alert_:function(){alert(this)}}); * @type {Function} */ (Object.extend = Object.prototype.extend = function(){ var args =arguments, length = args.length,i= 0,$key; for(;i<length;i++){ for(var name in ($key = args[i])){ this.prototype[name] = $key[name]; } } })(); /** * 判断对象是否是函数 * */ Object.extend({isFunc:function(){return this instanceof Function}}); /** * 判断指定的值是都是函数 */ function isFunc(obj){ return obj instanceof Function; } /** * 数组扩展 */ Array.extend({ /** * 根据value 返回数组的下一个单元 给定的单元是最后一个的话。将返回false * @returns {*} */ next: function(value){ var i = false; for(var key in this){ if(isFunc(this[key])) continue; if(i){ return this[key]; } else if(this[key]==value) i = !0; } return i; }, /** * 根据value 返回数组的上一个单元 给定的单元是第一个的话。将返回false * @returns {*} */ prev : function(value){ var prevVal = false; for(var key in this){ if(isFunc(this[key])) continue; if(this[key] == value) return prevVal; else prevVal = this[key]; } return prevVal; }, /** * 返回数组的keys * @returns {Array} */ keys : function(){ var newArray = [],k= 0; for(var i in this){ if(isFunc(this[i])) continue; newArray[k++] = i; } return newArray; }, /** * 返回数组的values * @returns {Array} */ values : function(){ var newArray = new Array(),k=0; for(var i in this){ if(isFunc(this[i])) continue; newArray[k++] = this[i]; } return newArray; } }); /** * 字符串扩展 */ String.extend({ /** * 根据字符转取得 img 标签的属性 默认获取 img 的src属性值 * @returns {Array} * @constructor */ getImgAttr:function(){ var reg = /<img[^>]+src="[^"]+"[^>]*>/gi,result = this.match(reg),imgSrc = [],attr = arguments[0] || "src", reg2 = new RegExp(attr+'="([^"]+)"','g'); for (var i=0; i<result.length; i++) { reg2.exec(result),imgSrc[i] = RegExp.$1; } return imgSrc; } }); var string = '<p><br /><a target="_blank" href="/html/news/uploadfiles/131011/201310110928071827.jpg"><img alt="" src="/html/news/uploadfiles/131011/201310110928071827.jpg" /></a><br /></p></div><div class="ListImgBox"><p><br /><a target="_blank" href="/html/news/uploadfiles/131011/201310110923007763.jpg"><img alt="" src="/html/news/uploadfiles/131011/201310110923007763.jpg" />'; alert(string.getImgAttr());