JavaScript是一门非常灵巧的面向对象的开发语言,函数作为“第一公民”有很多方面的特殊应用手段,比如bind、apply、call等方法函数,它们的使用方式、传递参数都是一样的,也有区别。通过它们的使用,在以后面向对象的开发、建模、多态应用上会有很好的表现手段。
不同的是: bind:绑定this的指向,然后返回一个新函数,返回的对应方法不会立即执行,需要调用才执行 call、apply:改变this的指向,调用是立即执行的。
apply和call的不同点: 1、call:接收的参数是逐个传入的; 2、apply:接收的是参数数组。
注意:当第一个参数为null时,非严格模式下(默认情况),this指向window;严格模式("use strict"),this指向null。
举例:
//函数返回一个对象,包括给定参数的最大值、最小值、总和、平均值
var funcA=function(...arg){
var valRang={
max:0,
min:0,
total:0,
average:0
}
valRang.max=Math.max.call(null,...arg);
valRang.min=Math.min.call(null,...arg);
valRang.total=(function(){
var x=0;
for(var i=0;i
关注
打赏