当前位置 : 主页 > 网络编程 > JavaScript >

关于this的指向问题

来源:互联网 收集:自由互联 发布时间:2021-06-30
特别是对于bind后面的参数可以引用bind前面的函数的方法 // 1.函数调用模式 // 当一个函数不是一个对象的属性时, 当作函数来调用,这是函数内的this指向全局对象(多数是window)window.value
特别是对于bind后面的参数可以引用bind前面的函数的方法
// 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这个方法
网友评论