js中的this关键字详解
2016-01-01 14:22
711 查看
this是Javascript语言的一个关键字它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用,下面分四种情况,详细讨论this的用法,感兴趣的朋友可以了解下
this是Javascript语言的一个关键字。
它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如,
随着函数使用场合的不同,this的值会发生变化。但是有一个总的原则,那就是this指的是,调用函数的那个对象。
下面分四种情况,详细讨论this的用法。
情况一:纯粹的函数调用 :属于全局性调用,因此this就代表全局对象Global。
看下面这段代码,它的运行结果是1。
证明this就是全局对象,我对代码做一些改变:
情况二:作为对象方法的调用
函数还可以作为某个对象的方法调用,这时this就指这个上级对象
情况三 作为构造函数调用
所谓构造函数,就是通过这个函数生成一个新对象(object)。这时,this就指这个新对象。
运行结果为1。为了表明这时this不是全局对象,我对代码做一些改变:
运行结果为2,表明全局变量x的值根本没变。
情况四 apply调用
apply()是函数对象的一个方法,它的作用是改变函数的调用对象,它的第一个参数就表示改变后的调用这个函数的对象。因此,this指的就是这第一个参数。
apply()的参数为空时,默认调用全局对象。因此,这时的运行结果为0,证明this指的是全局对象。
如果把最后一行代码修改为
运行结果就变成了1,证明了这时this代表的是对象o
this指触发事件的对象
复制代码
代码如下:
<input id="myinput" type="text"
value="javascript中onclick中的this" onclick="javascript:test(this);"/>
复制代码
代码如下:
function test(obj){
alert(obj);
//[object HTMLInputElement]
alert(obj.id); //myinput
alert(obj.value);
//javascript中onclick中的this
}
this是Javascript语言的一个关键字。
它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如,
function test(){ this.x =1 ; }
随着函数使用场合的不同,this的值会发生变化。但是有一个总的原则,那就是this指的是,调用函数的那个对象。
下面分四种情况,详细讨论this的用法。
情况一:纯粹的函数调用 :属于全局性调用,因此this就代表全局对象Global。
看下面这段代码,它的运行结果是1。
function test(){ this.x = 1; alert(this.x); } test(); // 1
证明this就是全局对象,我对代码做一些改变:
var x = 1; function test(){ alert(this.x); } test(); // 1
情况二:作为对象方法的调用
函数还可以作为某个对象的方法调用,这时this就指这个上级对象
function test(){ alert(this.x); } var o = {}; o.x = 1; o.m = test; o.m(); // 1
情况三 作为构造函数调用
所谓构造函数,就是通过这个函数生成一个新对象(object)。这时,this就指这个新对象。
function test(){ this.x = 1; } var o = new test(); alert(o.x); // 1
运行结果为1。为了表明这时this不是全局对象,我对代码做一些改变:
var x = 2; function test(){ this.x = 1; } var o = new test(); alert(x); //2
运行结果为2,表明全局变量x的值根本没变。
情况四 apply调用
apply()是函数对象的一个方法,它的作用是改变函数的调用对象,它的第一个参数就表示改变后的调用这个函数的对象。因此,this指的就是这第一个参数。
var x = 0; function test(){ alert(this.x); } var o={}; o.x = 1; o.m = test; o.m.apply(); //0
apply()的参数为空时,默认调用全局对象。因此,这时的运行结果为0,证明this指的是全局对象。
如果把最后一行代码修改为
o.m.apply(o); //1
运行结果就变成了1,证明了这时this代表的是对象o
javascript中onclick(this)用法介绍
this指触发事件的对象,接下来为大家分享下javascript中onclick(this)的用法,感兴趣的朋友可以参考下哈,希望对你有所帮助this指触发事件的对象
复制代码
代码如下:
<input id="myinput" type="text"
value="javascript中onclick中的this" onclick="javascript:test(this);"/>
复制代码
代码如下:
function test(obj){
alert(obj);
//[object HTMLInputElement]
alert(obj.id); //myinput
alert(obj.value);
//javascript中onclick中的this
}
相关文章推荐
- JS ,substr、 substring、charAt方法的区别
- javascript:history.go()和History.back()的区别(转载)
- Javascript——Math对象
- JavaScript停止冒泡和阻止浏览器默认行为
- javascript数组的属性使用方法归类
- 纯js 2048游戏,js 2048游戏实现,无上限的2048游戏,有道具的2048游戏
- 详解JavaScript 中的 replace 方法
- 基于JavaScript实现定时跳转到指定页面
- Javascript获取数组中的最大值和最小值的方法汇总
- 实例详解JavaScript获取链接参数的方法
- 实例详解JavaScript获取链接参数的方法
- Javascript获取数组中的最大值和最小值的方法汇总
- 基于JavaScript实现定时跳转到指定页面
- 详解JavaScript 中的 replace 方法
- 基于Javascript实现弹出页面效果
- jsp基础知识
- 使用js脚本批量下载慕课网视频
- 深入学习js中的json
- Nancy 自定义JsonSerializer
- json使用感悟