码迷,mamicode.com
首页 > 移动开发 > 详细

call和apply

时间:2019-12-04 20:04:36      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:形参   cti   ons   组元   第一个   不同   class   元素   输出   

call和apply方法作为为修改方法内部this的指向

var obj = {
  name : "obj"
}
function sum(a, b){ console.log(
this); } sum(); //window.test();  返回window对象
sum.apply(obj);  //返回obj对象

call和apply区别在于传入的参数不同,call方法可以传入多个参数(object,,,),apply方法只能传入两个参数(object,array)。第一个引入的参数object也就是修改this指向的参数

var obj = {
    name : "obj"
}
function sum(a , b){
    console.log(a + b);
    console.log(this);
}
sum.call(obj, 1, 2);    //call方法可传入多个参数
var arr = [2, 3];
sum.apply(obj, arr);    //apply方法传入两个参数。第二个为数组,依次传入调用方法的形参
//真数组转化为伪数组
//1.通过数组调用push方法
//2.通过apply方法,把this转向为obj对象
//3.取出arr数组元素传递给push方法的形参
var arr = [2, 3];
[].push.apply(obj, arr);
console.log(obj);     //输出{0: 2, 1: 3, name: "obj", length: 2}

 

 

call和apply

标签:形参   cti   ons   组元   第一个   不同   class   元素   输出   

原文地址:https://www.cnblogs.com/renhaooh/p/11984772.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!