`
JavaSam
  • 浏览: 955260 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js增加本地方法

 
阅读更多
/**
 * @author wsf
 */
/**
 * 为所有对象添加val方法
 */
if (!Object.prototype.val) {
	Object.prototype.val = function() {
		return this.valueOf();
	}
}
/**
 * 判断是否为数字型数据
 */
if (!Object.prototype.isNumber) {
	String.prototype.isNumber = function() {
		return !this || isNuN(this.val()) ? false : ( typeof this.val() === "number");
	}
}
/**
 * 为数组添加remove方法
 */
if (!Array.prototype.remove) {
	Array.prototype.remove = function(s) {
		for (var i = this.length; i >= 0; i--) {
			if (s === this[i])
				this.splice(i, 1);
		}
	}
}
/**
 * 为所有类型数据添加apply方法针对数组和json对象
 */
if (!Object.prototype.applyAll) {
	Object.prototype.applyAll = function(callback) {
		if (!this)
			return;
		var idx = 0;
		if (this.remove && this[0]) {
			//数组
			for (var o = this[0]; idx < this.length && callback.call(o, idx, o) != false; o = this[++idx]) {
			}
		} else {
			//对象
			for (var i in this) {
				if (callback.call(this[i], i, this[i]) === false)
					break;
			}
		}
	}
}
/**
 * 为数组添加indexOf方法
 */
if (!Array.prototype.indexOf) {
	Array.prototype.indexOf = function(o) {
		for (var i = this.length; i >= 0; i--) {
			if (this[i] === o)
				return i;
		}
		return -1;
	}
}
/**
 * 为数组添加contain方法
 */
if (!Array.prototype.contain) {
	Array.prototype.contain = function(o) {
		var validx = this.indexOf(o)//拿到索引
		return validx > 0;
	}
}
/**
 * 为数组添加put方法(添加的到指定下标位置)
 */
if (!Array.prototype.put) {
	Array.prototype.put = function(o, idx) {
		return this.splice(idx, 0, o);
	}
}
/**
 * 为字符对象添加intVal方法
 */
if (!String.prototype.intVal) {
	String.prototype.intVal = function() {
		return parseInt(this);
	}
}
/**
 * 为字符对象添加doubleVal方法
 */
if(!String.prototype.doubleVal){
	String.prototype.doubleVal = function (){
		return parseDouble(this);
	}
}
/**
 * id选择器和类选择器
 */

function selc(s) {
	if (s.indexOf("#") > 0)
		return document.getElementById(s.replace("#", ""));
	else if (s.indexOf(".") > 0) {
		var result = [];
		var a = selector.split(".");
		var prefix = a[0] || "*";
		//前缀
		var suffix = a[1];
		//后缀
		var docs = document.getElementsByTagName(prefix);
		docs.applyAll(function() {
			if (this.nodeType === 1 && this.id) {
				var classNames = this.className.split(/\s+/g);
				//所有类名
				var finded = this;
				classNames.applyAll(function() {
					if (this === suffix)
						result.push(finded);
				});
			}
		});
		return result;
		//返回结果集合
	}
}

/**
 * ajax请求
 * @param {} options
 */
function ajax(options) {
	var httpRequest = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
	httpRequest.onreadystatechange = function() {
		var dataType = options.dataType.toLowerCase();
		httpRequest.readyState === 4 && httpRequest.status === 200 && options.callback(dataType === "json" ? eval("(" + httpRequest.responseText + ")") : dataType === "xml" ? httpRequest.responseXML : httpRequest.responseText, options.context);
	};
	httpRequest.open(options.mode, options.url, options.sync);
	if (options.mode.toLowerCase() === "post") {
		httpRequest.setRequestHeader("CONTENT-TYPE", "application/x-www-form-urlencoded;charset=utf-8");
	}
	options.mode.toLowerCase() === "get" ? httpRequest.send(null) : httpRequest.send(options.params);
}

/**
 * Map实现
 */
var Map = function() {
	this.flag = false;
	this.store = new Array();
	if (!this.flag) {
		Map.prototype.entry = function(key, val) {
			this.key = key;
			this.val = val;
		}
		Map.prototype.put = function(key, val) {
			this.store[this.store.length] = new this.entry(key, val);
		}
		Map.prototype.get = function(key) {
			for (var i = this.store.length - 1; i >= 0; i--) {
				if (this.store[i].key === key)
					return this.store[i].val;
			}
			return null;
		}
		Map.prototype.remove = function(key) {
			for (var i = this.store.length - 1; i >= 0; i--) {
				this.store[i].key === key && this.store.splice(i, 1);
			}
		}
		Map.prototype.keySet = function() {
			var keys = new Array();
			for (var i = 0; i <= this.store.length - 1; i++) {
				keys.push(this.store[i].key);
			}
			return keys;
		}
		Map.prototype.valSet = function() {
			var vals = new Array();
			for (var i = 0; i <= this.store.length - 1; i++) {
				vals.push(this.store[i].val);
			}
			return vals;
		}
		Map.prototype.clear = function() {
			this.store.length = 0;
		}
		Map.prototype.size = function() {
			return this.store.length;
		}
		this.flag = true;
	}
}

 

0
0
分享到:
评论

相关推荐

    js读取本地excel文档数据

    ### JS读取本地Excel文档数据知识点详解 #### 一、背景与需求分析 在Web开发中,经常需要处理用户上传的文件,特别是Excel文件。这些文件通常包含了重要的数据信息,如表格数据等。通过JavaScript(JS)来读取并...

    tianditu.js 天地图本地缓存4.0下载

    tianditu.js 天地图本地缓存4.0下载

    苹果CMSV10本地化CKPLAYER增加记忆播放 自动下一集方法-已经试用过

    苹果CMSV10本地化CKPLAYER增加记忆播放 自动下一集方法 复制到苹果CMSV10的www\static\player文件夹里面!直接可以用! 苹果CMSV10本地化CKPLAYER增加记忆播放+自动下一集方法 苹果CMSV10本地化CKPLAYER增加记忆...

    element-ui本地编译后的js包

    在本地使用 Element UI 的编译版,虽然可能会增加项目的体积,但可以避免因网络问题导致的加载失败,同时也能保护用户的隐私,不依赖外部资源。如果你的项目对性能有较高要求,可以考虑使用 Tree Shaking 和按需引入...

    arcgis-js-api-4.22

    《ArcGIS JavaScript API 4.22:前端开发与本地部署详解》 ArcGIS JavaScript API 是Esri公司推出的一款强大的地图开发工具,主要用于构建交互式的Web GIS应用。本篇文章将深入探讨API的4.22版本,以及在前端开发中...

    WT-JS_DEBUG v1.4 ,本地JS调试工具。

    WT-JS_DEBUG v1.4 是一个专为JavaScript开发者设计的本地调试工具,旨在帮助程序员在开发过程中更有效地调试和测试JavaScript代码。这个工具提供了丰富的功能,使得在本地环境中进行JS代码的调试变得简单而高效。 #...

    JavaScript操作本地文件.doc

    JavaScript操作本地文件的能力是Web开发中的一个重要进展,特别是在现代浏览器如Chrome、IE和Firefox中,JavaScript引擎的性能提升使得更多的复杂任务得以实现。W3C正在考虑的一个草案就是JavaScript直接操作本地...

    Javascript开发之js压缩篇.pdf

    作者引入了OPOA组件式开发方法,但是这种方法会增加js文件的总量。为了解决这个问题,作者推荐使用yui-compressor对js文件进行压缩混淆。 yui-compressor是Yahoo!开发的一款js压缩工具,可以将js文件压缩到原来的1/...

    【JavaScript源代码】vue动态加载本地图片的处理方法.docx

    Vue.js 是一款流行的前端框架,...以上就是在 Vue.js 中处理动态加载本地图片的不同方法。选择合适的方法取决于项目的需求,例如图片大小、部署环境等因素。理解这些技巧对于优化 Vue 应用的性能和用户体验至关重要。

    【方法】html调用本地python程序进行交互 前后端交互.zip

    为了使HTML与Python进行交互,我们可以利用Python的HTTP服务框架(如Flask或Django)创建一个API接口,或者使用更简单的解决方案,如Node.js的child_process模块(在JavaScript中使用)或者Python的os模块(在Python...

    Node.js-Mr2.js是一个javascript客户端内置了mr2的免费服务器可以帮助您将本地服务器暴露到外部网络中

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程,极大地拓宽了JavaScript的应用领域。而Mr2.js是专为Node.js开发的一个工具,它作为一个客户端内置了mr2免费...

    WordPress的JavaScript 本地化实现

    于是,WordPress引入了`l10n.js`,这是一个JavaScript本地化工具库,包含`convertEntities()`方法,用于将HTML实体转换回原始值,确保本地化资源在其他JavaScript脚本之前正确加载。 要使用JavaScript本地化,...

    JS实现本地存储信息的方法(基于localStorage与userData)

    `initDom`方法用于初始化`userData`,`set`、`get`和`remove`方法分别对应设置、获取和移除本地存储的数据。 通过这样的封装,开发者可以方便地在不同的浏览器环境中使用本地存储功能,而无需关心底层实现的差异。...

    NodeJS本地上传文件至服务器

    在Node.js环境中,将本地文件上传到服务器是一个常见的任务,主要应用于文件共享、数据备份、内容发布等场景。本文将详细讲解如何使用Node.js实现这一功能。 首先,我们需要理解Node.js的基本概念。Node.js是一个...

    android不使用webview与js交互

    Android应用可以调用服务器上的API,这些API由Node.js或其他后端服务提供,执行JavaScript代码并返回结果。这种方式增加了网络延迟,但避免了在客户端解析JavaScript的开销。 4. **本地服务与WebSocket** 创建一个...

    问一个关于echarts本地路径的问题

    在探讨“问一个关于echarts本地路径的问题”这个主题时,我们首先需要理解ECharts是什么以及它在前端开发中的作用。ECharts是一个基于JavaScript的数据...在实际开发中,不断实践和调试是提升这方面技能的有效方法。

    Js获取本地时间和相关操作

    ### Js获取本地时间和相关操作 在JavaScript中,`Date`对象是处理日期和时间的核心工具。本文将详细介绍如何使用JavaScript来获取本地时间及其相关操作,包括但不限于:年、月、日、时、分、秒等具体信息的获取方法...

    select 增加搜索框

    2. **应用Chosen到select元素**:接着,你可以通过jQuery或其他JavaScript库选择`select`元素,并调用`chosen()`方法来激活`Chosen`的功能。确保在DOM加载完成后执行此操作,通常在`$(document).ready()`函数内: `...

    JS(javascript)-md5加密工具类

    JavaScript中的MD5加密工具类是用于对数据进行安全哈希的一种方法,广泛应用于密码存储、数据完整性校验等场景。MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能将任意长度的输入转化为固定长度的...

    Reres js本地文件替换

    "Reres js本地文件替换"是一个专注于解决这类问题的工具,尤其对于开发者在开发过程中快速迭代和测试非常有用。 Reres(发音类似“re-re-re”)是一个JavaScript库,它的主要功能是帮助开发者在本地环境中便捷地...

Global site tag (gtag.js) - Google Analytics