this规则之外

18 阅读1分钟

忽略显示绑定

apply/call/bind: 当传入null/undefined时,自动将this绑定成全局对象

function foo() {
    console.log(this)
}

foo.apply("abc")
foo.apply({})

// apply/call/bind: 当传入null/undefined时,自动将this绑定成全局对象
foo.apply(null)
foo.apply(undefined)

var bar = foo.bind(null)
bar()

间接函数引用

// 争论:代码规范;

var obj1 = {
    name: "obj1",
    foo: function() {
    console.log(this)
    }
}

var obj2 = {
    name: "obj2"
};

// obj2.bar = obj1.foo
// obj2.bar()

(obj2.bar = obj1.foo)()

obj2后边必须加;,如果不加,会报错。

不加()会认为是单独是一行,但是加了()就不能了