小知识,大挑战!本文正在参与“程序员必备小知识”创作活动
This 关键字
this关键字是JavaScript中最复杂的机制之一。它是一个很特别的关键字,被自动定义在所有函数的作用域中。但是即使是非常有经验的JavaScript开发者也很难说清它到底指向什么。
实际上,JavaScript中this的机制并没有那么先进,但是开发者往往会把理解过程复杂化。毫不夸张地说,不理解它的含义,大部分开发任务都无法完成。
this都有一个共同点,它总是返回一个对象。简单说,this就是属性或方法“当前”所在的对象。
This的基本用法一:
//定义一个全局变量v
var v= 100;
// this经常被定义在函数的作用域中
function fn() {
// this总是要返回一个对象
console.log(this.v); //this 指向哪个对象,不取决于函数定义的位置。
}
// this 指向哪个对象,取决于调用的位置
fn();//函数的调用
解析如下:
This的基本用法二:
//定义一个全局变量v
var v= 100;
// this经常被定义在函数的作用域中
function fn() {
// this总是要返回一个对象
console.log(this.v); //this 指向哪个对象,不取决于函数定义的位置。
}
// 定义一个对象,将fn函数作为obj对象的方法
var obj = {
v:200,
f:fn
}
obj.f();//200
解析图如下: