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());
JavaScript 对象扩展代码的更多相关文章
- Javascript对象、Jquery扩展简单应用
Javascript对象,表现方式一: person = new Object(); person.firstname = "An"; person.lastname = &quo ...
- Ext JS学习第九天 Ext基础之 扩展原生的javascript对象
此文来记录学习笔记: •Ext对于原生的javascript对象进行了一系列的扩展,我们把他们掌握好,更能深刻的体会Ext的架构,从而对我们的web开发更好的服务, 源码位置,我们可以从开发包的这个位 ...
- Ext JS学习第十天 Ext基础之 扩展原生的javascript对象(二)
此文来记录学习笔记: 今天继续说Ext.Array,Ext.Function,Ext.Date,Ext.Error ------------------------------------------ ...
- 深入理解javascript对象系列第二篇——属性操作
× 目录 [1]查询 [2]设置 [3]删除[4]继承 前面的话 对于对象来说,属性操作是绕不开的话题.类似于“增删改查”的基本操作,属性操作分为属性查询.属性设置.属性删除,还包括属性继承.本文是对 ...
- web前端学习(二) javascript对象和原型继承
目录 1. JavaScrpt对象 2. 原型对象和继承 3. 对象的克隆 (1)javascript对象 在JS中,对象是属性的容器.对于单个对象来说,都由属性名和属性值构成:其中属性名需要是标识符 ...
- Javascript 语言精粹 代码片段合集
Javascript 语言精粹 代码片段合集 标签:Douglas-Crockford Javascript 最佳实践 原文链接 更好的阅读体验 使用一个method 方法定义新方法 Function ...
- 第六章:Javascript对象
对象是javascript的基本数据类型.对象是一种复合值.它将很多值(原始值 或者其他对象)聚合在一起.可通过名字访问这些值.对象也可以看做是属性的无序集合,每个属性都有一个名/值.属性名是字符串, ...
- JavaScript对象进阶
要了解JavaScript对象,我们可以从对象创建.属性操作.对象方法这几个方面入手.概括起来,包括以下几模块: 1.创建对象 1.1 对象直接量 对象直接量是创建对象最简单的方式,由若干名/值对组成 ...
- 深入学习JavaScript对象
JavaScript中,除了五种原始类型(即数字,字符串,布尔值,null,undefined)之外的都是对象了,所以,不把对象学明白怎么继续往下学习呢? 一.概述 对象是一种复合值,它将很多值(原始 ...
随机推荐
- RabbitMQ消息队列安装和配置以及推送消息
好久没有写了,最近项目用到RabbitMQ,找了一些资料试验,最后终于成功了,把安装配置的步骤分享给大家. 一.Erlang安装具体过程: 1.双击otp_win32_R16801.exe(不同版本可 ...
- 详解AJAX核心 —— XMLHttpRequest 对象 (上)
我要说的内容都是非常基础的内容,高手就免看了,如果看了欢迎给点意见啊.新手或者对低层还不是很了解的人可以看看,帮助理解与记忆. XMLHttpRequest 对象是AJAX功能的核心,要开发AJAX程 ...
- 【.NetRemoting-2】2015.09.17
[Remoting架构] [1]是.NetFramework的一个重要组成 [2]框架的两个重要特性 [A]基本实现[B]可扩展/可定制 [各个组成部分] [1][客户端,客户端应用程序域] [组成] ...
- 创建view
IF EXISTS(SELECT 1 FROM sys.views WHERE name='V_PARENT_CLIENT') DROP VIEW V_PARENT_CLIENT GO create ...
- 纯css改变下拉列表select框的默认样式
下列CSS就可以解决,原理是将浏览器默认的下拉框样式清除,然后应用上自己的,再附一张向右对齐小箭头的图片即可. select { /*Chrome和Firefox里面的边框是不一样的,所以复写了一下* ...
- Java IO流分析整理 .
Java中的流,可以从不同的角度进行分类. 按照数据流的方向不同可以分为:输入流和输出流. 按照处理数据单位不同可以分为:字节流和字符流. 按照实现功能不同可以分为:节点流和处理流. 输出流: 输入流 ...
- strace排除Linux服务器故障
strace是一个有用的小工具 – 大多数Linux系统默认已经安装 – 可以通过跟踪系统调用来让你知道一个程序在后台所做的事情.Strace是一个基础的调试工具;但是即便你不是在跟踪一个问题的时候它 ...
- mysql事件调度器功能
一.前言 自MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录.对数据进行汇总等等),来取代原先只能由操作系 ...
- python爬图
闲的无事,看着知乎里种种python优点,按捺不住,装起python3.4. 网上找了点爬行图片的代码,修改至兼容3.4,成功爬行指定url所有jpg图片,代码段如下: import os impor ...
- Oracle EBS-SQL (OM-2):检查OM常用表
--多语言视图 ALTER SESSION SET NLS_LANGUAGE=AMERICAN ; --组织化视图 BEGIN FND_CLIENT_INFO.set_org_context(218) ...