this的使用

2020-09-13  本文已影响0人  素明诚

1.默认绑定,就是函数立即执行。

函数立即执行就是指向window,但是如果是node环境,就是指向全局
console.log(this===window);//true
console.log({}==={})//false

1.1函数的独立调用
function test(){
    console.log(this===window);
}
test();

2.隐式绑定规则谁调用就指向谁。

var a = 0;
var obj = {
    a:2,
    foo:function(){
            console.log(this);//指向obj
            // 每一个函数的执行都有一个新的this指向
        function test(){
            console.log(this);//windows
            // 这个this和上面的foo函数的this指向不同
            // 可能会相同就是都指向windows,但是指向肯定是不同的
        }
        test();
    }
}
obj.foo();
  // obj来调用的this 所以this肯定指向obj
  //函数的直接调用,this也是指向window

3.call.apply.bind

obj.foo() // 对象调用
bar.call(obj)
bar.apply(obj)
bar.bind(obj)

上一篇 下一篇

猜你喜欢

热点阅读