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
JS this指针的理解
原创mob604756f2af3b ©著作权
©著作权归作者所有:来自51CTO博客作者mob604756f2af3b的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
JS中理解码点和码元,解决emoji带来的乱码问题
了解码元和码点,处理emoji表情字符串截取带来的乱码问题,在String原型中增加自定义方法来处理
码元 码点 emoji乱码 字符串截取 字符串长度 -
C语言指针的基本认识
C语言指针的基本认识
指针变量 指针类型 指针数组 -
关于this指针的理解
1.1、理解this有如下类定义,该类中有一个成员变量:name以及两个成员方法,set_name
成员函数 成员方法 this指针 -
指针的理解与操作
指针是什么?以及指针地址的概念?指针就是地址,地址就是以定义
c++ c语言 算法 指针变量 #include