JS this指针的理解

时间:2022-05-06
本文章向大家介绍JS this指针的理解,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

this是javascript的一个关键字,也是比较容易令人迷糊的一个概念

this的本质:当前对象的所有者

示例1

var x = 1;
function test() {
    alert(this.x);
}
test();

在之前的“JS执行顺序”文章中讲过,这个test函数会被先编译为一个全局变量,如

var test = function test() {
    alert(this.x);
};

所以这个this所属对象为全局对象,this.x 就是全局变量 x,alert弹出值为'1'

示例2

var x = 2;
function test() {
    alert(this.x);
}
var obj = {};
obj.x = 1;
obj.func = test;
o.func();

这个输出结果为'1',因为这里test被赋给了对象obj,this的所有者就是obj,this.x 也就是 obj.x

示例3

下面这个例子比较有迷惑性,是一个比较容易出错的情况

function test() {
    alert(this.title);
}
<input type="button" value="test" onclick="test()" title="i am button"/>

输出的结果:undefined

其实onclick="test()",相当于

function onclick(event){
test();
}

是一个全局的function,上面的 test方法也是全局的function,而全局变量中并没有定义 title,所以结果为 undefined