Array.prototype.slice.call(arguments, 1)

qiongta 2013-11-06 08:50:48
Array.prototype.slice.call(arguments, 1)

为什么有些插件中第二个参数传值为1,而不是从0开始的
...全文
398 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
a_sha 2014-05-26
  • 打赏
  • 举报
回复
Array.prototype.slice.call(arguments,1)该语句涉及两个知识点。 arguments是一个关键字,代表当前参数,在javascript中虽然arguments表面上以数组形式来表示,但实际上没有原生数组slice的功能,这里使用call方法算是对arguments对象不完整数组功能的修正。 slice返回一个数组,该方法只有一个参数的情况下表示除去数组内的第一个元素。就本上下文而言,原数组的第一个参数是“事件名称”,具体像“click”,"render"般的字符串,其后的元素才是处理函数所接纳的参数列表。
jingwenpeng 2013-11-07
  • 打赏
  • 举报
回复
谢谢楼主,我过来看看大家的解答,对我很有帮助
qiongta 2013-11-07
  • 打赏
  • 举报
回复
引用 8 楼 u011461314 的回复:
改 fn('a1','x1','x2'); fn('a2','xx1','xx2','xx3');
fn(a1,'x1','x2'); fn(a2,'xx1','xx2','xx3'); 加引号不是变成了字符串了吗,为什么要加引号?
zhjdg 2013-11-06
  • 打赏
  • 举报
回复
改 fn('a1','x1','x2'); fn('a2','xx1','xx2','xx3');
zhjdg 2013-11-06
  • 打赏
  • 举报
回复
我这个才叫详细代码。
var methods={
		a1 : function(a,b){
			var $a = a;
			var $b = b;
		},
		a2 : function(){
			var $a = arguments;
		}
	
	}
	var fn=function(fun){
	    if(methods[fun]){
	       return methods[fun].apply(this, Array.prototype.slice.call(arguments, 1))
	    }
	}
	
	 fn(a1,'x1','x2');
	 fn(a2,'xx1','xx2','xx3');
qiongta 2013-11-06
  • 打赏
  • 举报
回复
引用 5 楼 u011461314 的回复:
很简单啊,因为不需要第一个。
可否详细点,详细代码已经贴出来了
zhjdg 2013-11-06
  • 打赏
  • 举报
回复
很简单啊,因为不需要第一个。
qiongta 2013-11-06
  • 打赏
  • 举报
回复
引用 3 楼 zzgzzg00 的回复:
var a=[1,3,5,7]; var x=Array.prototype.slice.call(a,1); alert(x); 1是指从数组的第二个开始截取 这个看你想要从几开始截取了 也就是说是业务的需求
我把代码贴详细点:

var methods={...}
var fn=function(fun){
    if(methods[fun]){
       return methods[fun].apply(this, Array.prototype.slice.call(arguments, 1))
    }
}
似梦飞花 2013-11-06
  • 打赏
  • 举报
回复
var a=[1,3,5,7]; var x=Array.prototype.slice.call(a,1); alert(x); 1是指从数组的第二个开始截取 这个看你想要从几开始截取了 也就是说是业务的需求
qiongta 2013-11-06
  • 打赏
  • 举报
回复
引用 1 楼 zzgzzg00 的回复:
你上网查下slice的用法
这个查过了,我主要是想知道为什么要从索引值1开始而不是0开始的
似梦飞花 2013-11-06
  • 打赏
  • 举报
回复
你上网查下slice的用法

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧