call,apply,bind方法比较

它们的作用可以用一句话来描述:就是改变this的指向。

用法function.call(),function.apply(),function.bind()

1 、call()和apply都用于函数调用

function fn(){  
  alert(this) 
}

fn();//window
fn.call('hello');//'hello'
fn.apply('8888');//'8888'

区别:

call( thisvalue, val1,val2,….)

  • thisvalue 是函数内部this的值
  • 后面是参数列表

apply( thisvalue, [val1,val2,….])

  • thisvalue 是函数内部this的值
  • 后面是参数数组,所有参数放数组里面

2 、bind()都用于函数创建

1、适用匿名函数

var fn = function (a,b ){
  console.log(this,a,b);
}.bind('hello',1,2);
fn();
var fn = function (a,b ){
  console.log(this,a,b);
}.bind('hello');
fn(1,2);
obj.onclick = function(){

}.bind();

2、有名函数,有些特殊

function fn(){
  console.log(this);
}
fn.bind('hello')();

3、自执行函数

(function abc(){
  console.log(this);
}.bind('hello')());
(function abc(){
  console.log(this);
}.bind('hello'))();
(function abc(){
  console.log(this);
}).bind('hello')();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值