javascript ——call和apply 方法

apply 和 call方法的作用:专门用于修改方法内部的this

function test() {

  console.log(this);

}

var obj = {"name" : "hjy"};

window.test.call(obj);

1.通过window.test 找到test方法

2.通过 apply(obj) 将找到的 test方法内部的 this 修改为自定义的对象

3.最后 打印出 {“name”:“hjy”}

格式:

apply(对象, [数组])

call(对象, 参数1, 参数2, 参数3, ...)

例:

function sum(a, b) {

  console.log(this);

  console.log(a + b);

}

var obj = {"name" : "hjy"};

window.sum.apply(obj, [2, 3]);       //打印  {name: "hjy"}     5

window.sum.call(obj, 2, 3);              //打印  {name: "hjy"}     5

1.通过window.sum 找到 sum 方法

2.通过 apply(obj) 将找到的 test方法内部的 this 修改为自定义的对象

3.将传入数组中的元素 或 每个传入的参数 依次取出, 传递给形参

应用:将数组转换为伪数组

var arr = [1,2,3,4,5];

var obj = {};

[].push.apply(obj, arr);

1.通过[].push 找到 数组的push 方法

2.通过 apply(obj) 将找到的 push 方法内部的 this 修改为自定义的对象

3.将传入数组中的元素 依次取出, 传递给形参

简单的说,就是将 arr 里的每个元素 push 到了 obj 身上,打印 obj 如下: 

猜你喜欢

转载自www.cnblogs.com/hjysunshine/p/12333161.html
今日推荐