SOURCE

// this 绑定规则
// 1. 默认绑定

var foo = function() {
    console.log(this.a);
}
var a = 'outer-ab';

foo(); // outer-ab


// 2. 隐式绑定

var bar = function() {
    console.log(this.a)
}

var baz = function(item) {
	console.log(item, this.a)
}

var obj = {
    a: 'inner-ab',
    fooFn: foo
}

obj.fooFn(); // inner-ab


// 3. 显式绑定 硬绑定

bar.call(obj); // inner-ab
bar.apply(obj); //inner-ab
bar.bind(obj); // inner-ab
[1,2,3].forEach(baz, obj)

// 4. new 绑定

var bac = function(a) {
	this.a = a;
}
var new_obj = new bac(2);
console.log(new_obj.a)



console 命令行工具 X clear

                    
>
console