美文网首页
函数的call、apply和bind方法

函数的call、apply和bind方法

作者: 小蜗牛的碎碎步 | 来源:发表于2019-11-07 16:56 被阅读0次
call、apply作用相同只是传递参数的方式不同。
  1. 更改this指向,从而扩充了函数作用域
  2. 调用函数
  3. 传递参数
function sayName(age,sex){
  console.log(this.name+"-"+sex+"-"+age);
}
let p1 = {name:"zhangsan"};
let p2 = {name:"lisi"};
//单个变量传递参数
sayName.call(p1,18,"女"); //zhangsan-女-18
//以数组或者arguments对象传递参数
sayName.apply(p2,[19,"男"]);//lis-男-19
bind

创建函数的实例,其this值会被绑定到传给bind函数的值,其返回值仍然是函数,需要手动执行。

let p3 = {name:"你是谁?"};
//参数只能单个传递,不能以数组或者arguments形式
let f = sayName.bind(p3,30,"男"); // 返回sayName的实例,未执行
f();//你是谁?- 男 - 30

相关文章

网友评论

      本文标题:函数的call、apply和bind方法

      本文链接:https://www.haomeiwen.com/subject/ezrvbctx.html