数组原型方法调用及函数apply调用时类数组参数在IE8或以下版本的问题


当函数以 apply 方式调用时, 传参方式是一个由各个参数组成的数组或类数组(一个有length属性的对象),传入参数个数取决于 length 的值,例如,某个对象 args.length=3; apply 会将 args[0],args[1],args[2] 三个参数传入,如果对应的值不存在则传入了undefined.

例如:

function f(a,b,c){ console.log(a,b,c);}
f.apply(null,{0:123,1:456,2:789,length:2});//123 456 undefined ,因为 length 属性值为2,值只传入了 2 个参数
f.apply(null,{10:123,11:456,12:789,length:3});// undefined undefined undefined , 因为参数对象不存在以 0、1、2 为...


11年前9月30日 阅读:231 评论:0

Javascript中模拟PHP的print_r函数


有些效果出不来,比如变量类型是object类型的不能完全打印!

function print_r(array, return_val) {
	var output = '', pad_char = ' ', pad_val = 4, d = this.window.document,
	getFuncName = function (fn) {
		var name = (/\W*function\s+([\w\$]+)\s*\(/).exec(fn);
		if (!name) {
			return '(Anonymous)';
		}
		return name[1];
	},
	repeat_char = function (len, pad_char) {
		var str = '';
		for (var i = 0; i < len; i++)...


13年前10月8日 阅读:131 评论:0

获取js后所带的参数,如:a.js?a=value1&amp;b=value2


将以下代码保存为:a.js

function querystring(){      
    this.params = new Object();      
    this.initialize = function(){      
		var param=this.paramstring();      
		if(param.length == 0) return;      
		if(param.substring(0,1)=='?'){      
			param=param.substring(1);      
		}      
		param = param.replace(/\+/g, ' ');      
		var args = param.split('&amp;');		  
		for (var i=0;i<a...


16年前9月11日 阅读:925 评论:0

一个简单的Ajax类


/**  
	Powered By CMSDream Copyright © 2007-2008 All rights reserved.  
	14:21 2008-5-10  
**/  
function CMSDreamAjaxLib(){   
	/**//**  
	成员变量  
	*/  
	this.XMLHttpReq = null;		//XML对象   
	this.method = "post";		//执行的方法(post/get)   
	this.url = "";			//异步调用的页面地址   
	this.responseText = "";		//异步返回的响应字符串   
	this.responseXML = "";		//异步返回的响应XM...


16年前9月8日 阅读:116 评论:0

动态加载样式元素的函数(兼容IE,FireFox,Opera)


如题,目前只对IE,FireFox,Opera这三种浏览器的兼容性进行过测试,其它浏览器还未测试。

有兴趣的朋友可以研究一下,应该也没问题的。

function AttachStyle(styDom, styCss, styId){   
	var istyle = styDom.createElement('style');   
	istyle.setAttribute("type", "text/css");   
	if(styId!=null){if(!document.getElementById(styId)){istyle.setAttribute("id", styId);}}   
	if (istyle.styleSheet){   
		istyle.styleSheet.cssText=styC...


16年前9月7日 阅读:210 评论:0

非常好用的Js的querystring类


/**  
	Powered By CMSDream Copyright © 2007-2008 All rights reserved.  
	15:10 2008-6-7  
**/  
function querystring(paramstring){   
	this.url=window.location.href;   
	this.params = new Object();   
	this.initialize = function(){   
		if(paramstring.length == 0) return;   
		if(paramstring.substring(0,1)=='?'){   
			paramstring=paramstring.substring(1);   
		}   
		paramstring = p...


16年前6月7日 阅读:172 评论:0

获取字符串长度的函数(ASP/VB/JS)


function strLen(str){      
	var len=0;      
	for(var i=0;i<str.length;i++){      
		var intCode=str.charCodeAt(i);      
		if(intCode>=0 &amp;&amp; intCode<=128){      
			len = len + 1;      
		}else{      
			len = len + 2;      
		}      
	}      
    return len;      
}



Private Function Length(iTxt)   
	Dim txt: txt = Trim(iTxt)   
	Dim x: x = Len(txt)   
...


17年前6月7日 阅读:220 评论:0

顶部