特别是对于bind后面的参数可以引用bind前面的函数的方法 // 1.函数调用模式 // 当一个函数不是一个对象的属性时, 当作函数来调用,这是函数内的this指向全局对象(多数是window)window.value
// 1.函数调用模式 // 当一个函数不是一个对象的属性时, 当作函数来调用,这是函数内的this指向全局对象(多数是window) window.value = 1; function getValue(){ console.log(this.value) } getValue(); // 2方法调用模式 // 当一个函数是一个对象的属性时,我们称它为该对象的一个方法, // 当一个方法被调用时.this指向该对象 var Obj ={ value:2, getValue:function(){ console.log(this.Value) } } // 3构造器调用模式 // 使用new调用的函数称为构造器函数,此时的this指向该构造器函数实例出来的对象 function main(val){ this.value = val; } main.prototype.getValue = function(){ console.log(this.value); } var fun = new main(3); fun.getValue(); fun.value; // 4.apply/call调用模式以及bind // aplly/call/bind 方法可以让我们设定调用者中的this指向谁 function showValue(){ console.log(this.value); } var obj ={ value:4 } showValue.call(obj) //this指向obj, 这句话相当于obj调用了showValue这个方法