javascript函数的调用模式有哪几种( 四 )

2.如果使用函数上下文模式调用函数,第一个参数不是指向一个对象,而是指向一个基本数据类型的值,那么函数中this的指向又该指向谁呢?代码如下:
52行53行54行,他们使用call()的方式调用foo()函数,this分别指向Number包装类型对象、String包装类型对象和Boolean包装类型对象;
55行,56行,57行,58行都指向window对象。 执行结果如下: (当然前提是非严格模式下,严格模式下修改this为null或者undefined都不允许指向window,关于严格模式另起篇章再究)。
三、函数上下文调用模式的使用场景究竟
1.元素都是整数的数组求最大值
如果要求出一个整数数组中的最大值,传统的做法是遍历数组,元素两两比较,最后得到最大值,但是这样较繁琐,所以我们联想到js中的Math对象提供的max()方法可以求一堆数中的最大值,所以我们就用apply的方式调用max()方法,不修改它this的指向,只是利用apply()方法的语法特点把arr数组的元素依次的交给Max()方法,这样就能得到arr数组中的最大值。执行结果如下:
2.伪数组转换成真数组
原始的做法需要遍历这个伪数组weiArr,然后把元素一个一个的往声明的真数组arr中添加,需要用到遍历所以较复杂。执行结果如下:

以上就是全部内容,完整内容分在传智播客的文章当中链接如下:
详解JavaScript中this的指向
修改JavaScript中的this指向
带你揭开BFC神秘的面纱
推荐阅读
- C语言指数函数代码
- 单例模式static函数必须在头文件中实现么
- 特斯拉|特斯拉或将允许车主远程调用Autopilot摄像头
- webpack打包后的页面,在集成时,怎样提供js接口给父页面调用呢
- 函数|你要来试试吗?高中数学丨越做越起劲的100道高中数学函数类压轴题
- javascript 中this的四种调用模式
- 咋用c语言或java打点出函数图
- C语言多维数组声明调用和c为啥差别这么大
- 阿贵看车|专访|宋军:后千万时代,吉利汽车更强调用户体验
- macOS 用PHP调用curl抓取不到https的数据
