this指向

96 阅读1分钟

this指向的绑定规则

1.默认绑定规则: console.log(this === window); //true 2.隐式绑定规则: 谁调用就指向谁(隐式丢失,参数赋值),而且父函数能够有权利改变子函数的this指向 3.显示绑定: call/apply/bind 4.new绑定

箭头函数中的this

箭头函数本身没有的this,它的this指向由它本身所在的作用域所决定 箭头函数面前四种this指向的绑定规则都是无效的

this指向的优先级

new绑定>显示绑定>隐式绑定>默认绑定

new绑定>显示绑定的例子

function foo(b) { this.a = b; }

    var obj1 = {};
    var bar = foo.bind(obj1);
    bar(2);

    console.log(obj1.a); //2
    var baz = new bar(3);
    console.log(obj1.a); // 2  this已经指向了一个新的对象,而且这个对象的引用给                            了baz,baz拿到的引用和obj1拿到的引用不是一个东西
                               所以obj1.a的值不会变化,baz.a的值会变化
    console.log(baz.a); // 3