var argu = Array.prototype.slice.call(argument,2);--->>var argu = Array.prototype.slice.call(arguments,2);其它运行正常,接分
解决方案 »
- jquery easyui 多屋拖放问题
- 问几个javascript创建function的问题?
- 能否用javascript调用通用对话框??
- 客戶端通過js添加數據,服務端讀取不到~`急死了~~~
- Ext.grid.GridPanel中Ext.data.Store的json过长,不显示
- 问问showModalDialog和全屏的两个问题....急,等待中...
- 如何让Window.Close()不提示,就直接关闭就行了
- 类似百度图片搜索结果页的布局怎么实现
- 新手报到,下面js怎么转换成jquery的写法呢??
- 百度留痕代码谁有呢,求教
- radio javascript 的问题
- 怎样限制input内输入单引号"'"?
stime = setTimeout("starwu('"+ t +"')",1000);
就可以传递参数了啊!
就是代码好像罗嗦了点。<script>
var _st = window.setTimeout;
window.setTimeout = function(fRef, mDelay) {
if(typeof fRef == 'function'){
for (var argu=[],i=2;i<arguments.length;i++)argu[i-2]=arguments[i];
var f = function(){
if (! emu) var emu = argu;
for (var i=0,rs=[];i<emu.length;i++) rs[i]="emu["+i+"]";
eval ("fRef("+rs.join()+")");
};
return _st(f, mDelay);
}
return _st(fRef,mDelay);
}function test(){
for (var i=0;i<arguments.length;i++)
alert(arguments[i]);
}
window.setTimeout(test,1000,'fason',window,123,[5,6,7],new Object());
</script>
<script>
var _st = window.setTimeout;
window.setTimeout = function(fRef, mDelay) {
if(typeof fRef == 'function'){
for (var argu=[],i=2;i<arguments.length;i++)argu[i-2]=arguments[i];
var f = function(){
for (var i=0,rs=[];i<argu.length;i++) rs[i]="argu["+i+"]";
eval ("fRef("+rs.join()+")");
};
return _st(f, mDelay);
}
return _st(fRef,mDelay);
}function test(){
for (var i=0;i<arguments.length;i++)
alert(arguments[i]);
}
window.setTimeout(test,3000,'fason',window,123,[5,6,7],new Object());
window.setTimeout(test,500,'test',"test");
</script>
if (obj) obj.constructor.prototype._caller = this;
var argus = new Array();
for (var i=0;i<argu.length;i++)
argus[i] = "argu[" + i + "]";
var r;
eval("r = " + (obj ? ("obj._caller(" + argus.join(",") + ");") : ("this(" + argus.join(",") + ");")));
return r;
};
Function.prototype.call = function (obj) {
var argu = new Array();
for (var i=1;i<arguments.length;i++)
argu[i-1] = arguments[i];
return this.apply(obj, argu);
};
<script>
var _st = window.setTimeout;
window.setTimeout = function(fRef, mDelay) {
if(typeof fRef == 'function'){
for (var argu=[],i=2;i<arguments.length;i++)argu[i-2]=arguments[i];
for (var i=0,rs=[];i<argu.length;i++) rs[i]="argu["+i+"]";
var f = function(){eval ("fRef("+rs.join()+")");};
return _st(f, mDelay);
}
return _st(fRef,mDelay);
}function test(){
for (var i=0;i<arguments.length;i++)
alert(arguments[i]);
}
window.setTimeout(test,3000,'fason',window,123,[5,6,7],new Object());
window.setTimeout(test,500,'test',"test");
</script>在最后两行调用自定义函数的时候其实都构造了对象,等效于这样:
new window.setTimeout(test,3000,'fason',window,123,[5,6,7],new Object());
new window.setTimeout(test,500,'test',"test");那就没有什么奇怪的了。