javascript中的this到底指什么?

请高手详细解释一下。... 请高手详细解释一下。 展开
 我来答
tkocn
推荐于2017-10-07 · TA获得超过1401个赞
知道答主
回答量:90
采纳率:0%
帮助的人:79.7万
展开全部
JavaScript:this是什么?

定义:this是包含它的函数作为方法被调用时所属的对象。
说明:这句话有点咬嘴,但一个多余的字也没有,定义非常准确,我们可以分3部分来理解它!
1、包含它的函数。2、作为方法被调用时。3、所属的对象。
看例子:
function to_green(){
this.style.color="green";
}
to_green();
上面函数中的this指的是谁?
分析:包含this的函数是,to_green
该函数作为方法被调用了
该函数所属的对象是。。?我们知道默认情况下,都是window对象。
OK,this就是指的window对象了,to_green中执行语句也就变为,window.style.color="green"
这让window很上火,因为它并没有style这么个属性,所以该语句也就没什么作用。
我们在改一下。

window.load=function(){
var example=document.getElementById("example");
example.onclick=to_green;
}
这时this又是什么呢?
我们知道通过赋值操作,example对象的onclick得到to_green的方法,那么包含this的函数就是onclick喽,
那么this就是example引用的html对象喽。
this的环境可以随着函数被赋值给不同的对象而改变!
下面是完整的例子:

<script type="text/javascript">
function to_green(){
this.style.color="green";
}
function init_page(){
var example=document.getElementById("example");
example.onclick=to_green;
}
window.onload=init_page;
</script>
<a href="#" id="example">点击变绿</a>

参考资料: http://hi.baidu.com/tkocn/blog/item/7c66bd02f7395b084afb5150.html

闲杂人等_
2009-02-27 · TA获得超过168个赞
知道小有建树答主
回答量:47
采纳率:0%
帮助的人:37.3万
展开全部
javascript在web开发中的无处不在,未来的web程序必然拥有大量的js代码支持。javascript这门语言有点残废,“混乱”的this应用让人头痛,我常常搞错。整理一些js中this的使用方法。关键字this总是指向调用该方法的对象.
1.表示对触发事件的DOM对象的引用
<div onclick="可以在里面使用this">division element</div>
onclick="function(this){}";onclick="function(){this..}"
脚本引擎生成了一个div实例对象的匿名成员方法,而onclick指向这个方法
2.在函数内使用this,表示引用当前window对象
<script language="javascript">
function a(){this..}
</script>
对于IE浏览器可以用this.event.srcElement来获取对当前DOM对象的引用,FF不行。这种方法如果在使用函数的时候new了一下,那么this将会表示函数a,而不是window对象.var b=new a(); var b=a();两者会产生不一样的结果,很神奇的this
3、用DHTML方式在事件处理函数中使用this关键字:
<script language="javascript">
var div = document.getElementById('elmtDiv');
div.onclick = function()
{
// 在此使用this
};
</script>
这里的this关键字指示的内容是div元素对象实例,在脚本中使用DHTML方式直接为div.onclick赋值一个EventHandler的方法,等于为div对象实例添加一个成员方法。这种方式和第一种方法的区别是,第一种方法是使用HTML方式,而这里是DHTML方式,后者脚本解析引擎不会再生成匿名方法。Jquery中的 $('div').click(function(){$(this)..});$(this)也就是这种用法。
4.类定义中使用this
function JSClass()
{
var myName = 'jsclass';
this.m_Name = 'JSClass';
}

JSClass.prototype.ToString = function()
{
alert(myName + ', ' + this.m_Name);
};

var jc = new JSClass();
jc.ToString();
这时this表示m_Name是JSClass的成员变量,var myName只能算是“构造函数”内的一个变量,外部肯定无法引用。

5.函数中的内部函数中使用this
function OuterFoo()
{
this.Name = 'Outer Name';

function InnerFoo()
{
var Name = 'Inner Name';
alert(Name + ', ' + this.Name);
}
return InnerFoo;
}
OuterFoo()();
OuterFoo()里面的this.Name表示window.Name,InnerFoo()里面的this.Name也表示window.Name

还有几个空间介绍的不错
我也只是转下
javascript中有好多东西定义的都比较混乱

参考资料: http://hi.baidu.com/bdui/blog/item/4373ac07397c72ce7b894786.html

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bbf13573b
2009-02-27 · 超过74用户采纳过TA的回答
知道小有建树答主
回答量:265
采纳率:0%
帮助的人:204万
展开全部
this指针是面向对象程序设计中的一项重要概念,它表示当前运行的对象。在实现对象的方法时,可以使用this指针来获得该对象自身的引用。
和传统意义的面向对象的语言不同,JavaScript 中的 this 指针是一个动态的变量,一个方法内的this指针并不是始终指向定义该方法的对象的.
推荐一本书给你,这本书里对this指针有很详细的解说。
《JS资料-征服Ajax - Web20开发技术详解试读版.pdf》
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
育知同创教育
2018-06-27 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
  this是一个语言中的关键字,它就是一个对象。
  thispage的意思是这个页面。
  JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
流量卡测速
2009-02-27 · 超过56用户采纳过TA的回答
知道小有建树答主
回答量:194
采纳率:0%
帮助的人:88.1万
展开全部
this代表当前对象 比如你点击Button,this就代表了Button这个按钮.
Button有很多属性如 Button.caption 也可以写成this.caption
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式