javascript学习笔记--call和apply方法

2018-10-19  本文已影响0人  持续5年输出bug

this
1.以函数形式调用,window
2.以方法形式调用,方法的对象
3.以构造函数形式调用,构造函数新创建的那个对象
5.以call和apply形式调用,指定的那个对象

1.call和apply是函数的方法,要通过函数对象来调用
2.当对函数调用该方法时,都会调用函数执行
3.在调用call和apply可以将对象作为一个参数,此时这个对象就会成为执行函数的this,
4.所以可以通过call和apply修改this(上下文对象)
5.call()将实参一次传入
6.apply()需要将实参封装到一个数组里统一传入

function () {
  console.log(this)
}
var obj={
}
//window对象
 fun(obj);
//window对象
 fun();
 //obj对象
 fun.call(obj);
 fun.apply(obj);

//修改this

  function fun (a,b) {
  console.log("a="+a)
  console.log("b="+b)
  }
  var obj={
         
    }
  fun(); //a=undefinedb=undefined
  fun.call(obj,1,2); //a=1,b=2
  fun.apply(obj,[1,2])//a=1,b=2
上一篇 下一篇

猜你喜欢

热点阅读