javascript - apply方法如何改变this指针的?
巴扎黑
巴扎黑 2017-04-11 13:03:30
[JavaScript讨论组]
var arr = [3, 10, 2, 100];
var max = Math.max.apply(Math, arr);

console.log(max);  //  100

有大神能详细讲解一下吗,小白弄不懂

巴扎黑
巴扎黑

全部回复(4)
伊谢尔伦

如何改变指针是标准定的,apply和call就是用来改变作用域的

call与apply的区别在于前者的参数是一个一个的,比如:

var max = Math.max;
var a = max.call(Math,1,2,5,8);
alert(a)  //8
var max=Math.max
var a=max.apply(Math,[1,2,5,8]);
alert(a)  //8
怪我咯

可以看看这篇,可能会有一定的帮助,谢谢!

高洛峰

Math.max方法可以接受多个参数,现在你这是将参数列表组成了一个数组,Math.max本身是不能接收一个数组的,现在需要一个能将数组转换为参数列表的一个工具,这个工具就是apply

var arr = [3, 10, 2, 100];
var max = Math.max.apply(Math, arr);

可以翻译为

Math.max(3, 10, 2, 100)
伊谢尔伦

apply是怎么改变this的??这个得看源码了吧..就像

Array.prorotype.forEach(function(){
    this....//你是想问这个this为什么会绑到调用数组的身上??这个好难。。
})
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号