this指向的改变方法

第一种 call()方法

  • 写法:函数.call(this, 内容一,内容二)
  • 第一个参数要指向的 后面的参数为函数执行的时候的实参
    示例代码:
window.str = 'window';

var a = { str : 'a'}
function fn(){
console.log(this.str);
}

fn.call(); //window
fn.call(window); //window
fn.call(a); //a

第二种 apply()方法

  • 写法::函数.apply(this, 【内容一,内容二】)
    ps:其实和call基本一样 就是函数执行的实参传入方式不一样 call是直接传入 而apply方法传入的是数组
    示例代码:

window.str = 'window';
var a = { str : 'a'}

function fn(){
console.log(this.str);
}
 
fn.apply(); //window
fn.apply(window); //window
fn.apply(a); //a


第三种 bind()方法

  • 写法: var new = 函数.bind(this);
  • 示例代码:

window.str = 'window';
var a = { str : 'a'}

function fn(){
console.log(this.str);
}
 
fn();//window
var fn1 = fn.bind(a);
fn1() //a


总结

  • call()和aplly()方法基本一致 只是注意使用 传入实参的时候 call 直接传入就可以 apply需要注意将实参放入数组后 再传入
  • bind() 方法需要注意的点就是 它会将改变指向 后需要被接收一下
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值