javascript this的理解

this的存在主要解决函数作用域的问题,因为函数可以在任何地方执行,this用于指向改函数所运行的环境


var obj = {
	bar: 1,
	foo: function() { console.log(this.bar) }
}

obj.foo()	// 1

obj对象的foo实际上是地址,这个地址指向一个函数。由于该函数由obj对象调用,所以this.bar指向obj对象中的bar变量


var obj = {
	bar: 1,
	foo: function() { console.log(this.bar) }
}

var bar = 2
var foo = obj.foo

foo()		// 2

var foo = obj.foo,将obj.foo的地址的值赋值给foo,它们指向同一个函数。由于foo在全局环境中调用,所以this.bar指向全局环境中的bar


参考阮一峰博客:JavaScript 的 this 原理


猜你喜欢

转载自blog.csdn.net/chenjineng/article/details/80812197