this,bind,call,apply三者之间的区别及作用

this

this的指针作用域:

  • 1、在全局中使用this,表示全局的global对象,在浏览器中this指向window对象;
  • 2、当在函数执行环境中使用this时,如果函数没有明显的作为非window对象的属性,而只是定义了函数,不管这个函数是不是定义在另一个函数中,这个函数中的this仍然表示window对象。如果函数显示地作为一个非window对象的属性,那么函数中的this就代表这个对象;
  • 3、当通过new运算符来调用函数时,函数被当做一个构造函数,this指向构造函数创建出来的对象;
  • 4、this在箭头函数中失效了,因为这是箭头函数没有单独的this值,箭头函数this与声明的所在的上下文相同,也就是说明箭头函数的时候,不会隐士的调用this参数,而是从定义时的函数继承上下文。

call

继承,把父类私有属性和方法,克隆一份一模一样的,作为子类私有的属性和方法。

   function A() {
    // 一个函数有三种角色:1、普通函数(私有作用域)2、类(new)3、普通对象(__proto__)
    this.x = 100;
    this.y = 200;
    this.a = function () {
   
        console.log(this.x);
  
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值