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
运行结果还是1。再变一下:
var x = 1;
function test(){
this.x = 0;
}
test();
alert(x); //0
情况二:作为对象方法的调用
函数还可以作为某个对象的方法调用,这时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。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# js
# this
# JavaScript中this的用法实例分析
# JS作用域闭包、预解释和this关键字综合实例解析
# JavaScript中this的四个绑定规则总结
# 几句话带你理解JS中的this、闭包、原型链
# javascript this详细介绍
# JavaScript中的this使用详解
# 老生常谈 js中this的指向
# js老生常谈之this
# constructor
# prototype全面解析
# JS中改变this指向的方法(call和apply、bind)
# 深入理解javascript中的 “this”
# 第一个
# 我对
# 指的是
# 的是
# 这是
# 还可以
# 这段
# 四种
# 自动生成
# 为空
# 没变
# 有一个
# 变成了
# 那就是
# 全局变量
# 结果是
# 只能在
# 证明了
# Javascript
# function
相关文章:
深圳网站制作培训,深圳哪些招聘网站比较好?
如何高效完成独享虚拟主机建站?
如何用wdcp快速搭建高效网站?
中山网站制作网页,中山新生登记系统登记流程?
学校免费自助建站系统:智能生成+拖拽设计+多端适配
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
完全自定义免费建站平台:主题模板在线生成一站式服务
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
零服务器AI建站解决方案:快速部署与云端平台低成本实践
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
网页设计网站制作软件,microsoft office哪个可以创建网页?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
建站之星导航菜单设置与功能模块配置全攻略
ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?
再谈Python中的字符串与字符编码(推荐)
高防服务器:AI智能防御DDoS攻击与数据安全保障
建站之星安装模板失败:服务器环境不兼容?
制作网站外包平台,自动化接单网站有哪些?
威客平台建站流程解析:高效搭建教程与设计优化方案
北京的网站制作公司有哪些,哪个视频网站最好?
宝华建站服务条款解析:五站合一功能与SEO优化设置指南
如何快速生成橙子建站落地页链接?
孙琪峥织梦建站教程如何优化数据库安全?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
如何选择网络建站服务器?高效建站必看指南
如何用PHP快速搭建高效网站?分步指南
建站之星后台管理如何实现高效配置?
大连网站设计制作招聘信息,大连投诉网站有哪些?
制作旅游网站html,怎样注册旅游网站?
如何通过NAT技术实现内网高效建站?
Thinkphp 中 distinct 的用法解析
制作网页的网站有哪些,电脑上怎么做网页?
建站之星如何实现网站加密操作?
制作网站的模板软件,网站怎么建设?
网站制作免费,什么网站能看正片电影?
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
建站之星导航如何优化提升用户体验?
如何通过免费商城建站系统源码自定义网站主题与功能?
建站之家VIP精选网站模板与SEO优化教程整合指南
实现虚拟支付需哪些建站技术支撑?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
如何在云服务器上快速搭建个人网站?
如何在Ubuntu系统下快速搭建WordPress个人网站?
,网页ppt怎么弄成自己的ppt?
如何选择PHP开源工具快速搭建网站?
TestNG的testng.xml配置文件怎么写
教学论文网站制作软件有哪些,写论文用什么软件
?
建站之星免费版是否永久可用?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
*请认真填写需求信息,我们会在24小时内与您取得联系。