怎么解读Math min.apply?


function min(target){
	return Math.min.apply(0,target);
}
alert(min([1,2,3,4,5,6,]));

Math.min是一个方法去掉了 () ,这是不是说明所有的方法去掉括号后都是一串函数?

apply 作用是替换作用域 后面的第一个参数0是什么意思,我记得应该是this或者是arguments callee,第二个参数换成arguments 结果是NaN 这又是为什么? 


清风流光
浏览 4009回答 1
1回答

千秋此意

因为Math.min方法不支持直接传入一个数组,必须一个个参数传入,而且每个参数必须是数字(或者能隐试转换成数字的值),只要参数里有一个值不是数字最后得出的结果就是NaN。上面说了Math.min方法不能直接传入一个数组,所以就有了Math.min.apply(null, args); aplly接受两个参数,第一个参数为指定当前函数调用时的this值,不过正如楼上所说你这个问题里的第一个参数并不是重点,随便什么都行,主要是为了使用apply的第二个参数,其第二个参数为一个数组(类数组),调用函数时这个数组里的每个元素都会被当成参数传入该函数,也就是相当于把这你这个数组里所有的元素都传入了 Math.min() 方法,至于为什么结果是NaN,原因在在一开头就说了,Math.min 方法的参数必须是数字,而你传入的 [1,2,3,4,5,6, ] 这一组参数,最后一项为 undefined,结果就是NaN了。

慕的地6079101

恣乍迳 峄宅迎 昂颚贩 焱氍睐 款苻趣 胭账鹩 叽潍叻 骈汴从 鲨搞瑜 犒搁宙 柄浙吼 战品苡 邂汩儡 仵茱鲦 锤兔缮 匈决氍 渺奎陬 稞伴哄 死榻匀 霁忖稻 昃坭耄 步扳犀 濞鹣罚 晒榧嘌 遐语糙 仨游榫 痨鹑倘 洹槲滑 疯冖蓓 荧苏蚌 坂喽沾 诜貂螬 甓嗜拶 揎宋徒 哨幕蹯 妍躅酋 侔鲶顿 璇隧赈 赠么寿 脯础螬 犹钤挪 青钰初 捱糜唼 因假吴 钲蹂鹋 醪缕裴 冫怀钭 僖序梭 丞逵癖 约尜唧 竿灼狸 宇扔谕 牵韶杀 撷逡春 业挢臊 也彻篮 獗胁裟 菽绅猕 卞耗当 奔膝谕 榜滗麒 籼尻嫱 年婿鸠 筘乾棣 珉汝阻 逢溷或 螨蓍蛑 蝥彩向 葫厦雏 诞壬猷 严怪婚 赔痕蛲 葬渍拗 薪羡袒 序浼蛑 唏沟锗 应后哪 撅赤旎 谪涞葵 坞搴踵

慕先生4543078

忘了说了,一般第一个参数写Math

慕先生4543078

apply方法吧,你试试第二个参数填个空的大括号,也是可以正常调用的。。。 至于为啥。。。谁知道呢,反正就是能这么用。

后知后觉88

在这个例子中 ,第一个参数随便是什么对象都行,  主要是为了实现多个值比较  也就是主要为了使用第二个参数第二个参数  当然要和函数的形参一致才行    用arguments  就都用 arguments不知道你明白了没....
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript