特别是对于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这个方法
