修改this指向的方法

    xiaoxiao2022-07-03  158

    一、call:传入的参数为依次传入

    let a = [1,43,2,56,34,23,98,14]; Math.max.call(a,1,43,2,56,34,23,98,14); //第一个参数为:改变this指向为a这个变量,如果目标参数没有this关键字吗,可以省略。反之则必须书写 Math.min.call(a,1,43,2,56,34,23,98,14); //第二个参数为:传入的参数,需要依次传入值 --> 98 1

    二、apply:传入的参数为数组的形式

    let a = [1,43,2,56,34,23,98,14]; Math.max.apply(a,a); //第一个参数为:改变this指向为a这个变量 Math.min.apply(a,a); //第二个参数为:传入的参数,需要传入一个数组 --> 98 1

    三、bind:延时执行,函数需要调用才能执行,不能与上面一样立即执行

    let a = [1,43,2,56,34,23,98,14]; let max = Math.max.bind(a); //参数为:改变this指向为a这个变量 let min = Math.min.bind(a); //此时仅仅定义了函数还未执行 console.log(max(1,43,2,56,34,23,98,14)) //需要调用才能执行函数,参数为依次传入 console.log(min(1,43,2,56,34,23,98,14)) --> 98 1 //或 console.log(Math.max.bind(a)(1,43,2,56,34,23,98,14)); //效果一致

     

    最新回复(0)