this:函数的调用方式决定this的值
  1. 通过“对象.method”来调用
    • console.log(‘xxx’) :log函数执行时的this参数就是console
    • o = {a:2,fun:function(x){return this.a + x}}
      • 调用方式:o.fun(1): 此时fun执行时的this参数就是o。所以this.a 就是o.a = 2;
         
     2. call/apply调用:显示指定this参数


  1. 直接调用。比如walk()
    • 非严格模式下,其中的this为window(这是语言漏洞)
    • 严格模式下为undefined(因为没有.前缀指定this)

                

      • 非严格模式这种处理方式带来很多问题。箭头函数算是解决方法之一。


  1. 通过new 关键字来调用构造器函数.
    • don’t care this???




说明
  • bind函数会将上下文对象绑定死,不可以再修改
  • 箭头函数:
    • 没有自己的运行时上下文。所以没有直接独立this参数


参考:

2.this的确定

2019-02-16 21:55:55 0 11
这里是评论

相关推荐