如何理解 JavaScript 中的 this 关键字

 我来答
育知同创教育
2017-03-10 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
在编程语言里,同样也有“我”的概念,那就是this关键字。每一个定义的方法里,都会有一个this关键字,这个this关键不是由在那儿定义的来决定的,而是由谁来执行的决定的。这是判断this关键表示什么的重要原则。比如:
张三.吃饭();//这个吃饭里的this就是张三这个对象
也就是判断点(.)前面的对象是谁,那这个this就是谁。
但有的方法是直接执行的,前面没有点,就更没有执行的对象了,那this关键是谁呢?像alert方法,直接执行的,那alert方法里的this是谁呢?凡是可以象alert这样直接运行的方法,都是全局方法(全局方法叫函数),全局方法的执行,都相当于前面省略掉了window.,也就是说alert()相当于window.alert(),那这样直接运行的方法里的this关键字,肯定就是window了。
² 再强调一次:方法里的this表示的是那个对象,是由谁来执行决定的。和在那儿定义的没有关系。
补充:this表示的对象,是这个方法活动的“上下文”。“上下文”是那些计算机前辈在翻译这个词的时候,脑子抽了一下,就把context翻译成这么一个中国人看不懂的新词汇了。所谓的“上下文”, 也就是表示当前的这些代码的活动范围,当前的活动(代码的执行)在那个对象上发生的意思。吃饭这个活动,是在张三这个对象上发生的,则张三是吃饭的上下文。在body里去查找所有的div元素,则body是这个查找活动的上下文。那这个this,就是这个方法运行的活动范围了。
方法里this当前这个方法运行的上下文,但上下文不仅限于this(就是个体与整体的区别)。
lightparksunny
2017-03-11 · TA获得超过226个赞
知道小有建树答主
回答量:371
采纳率:50%
帮助的人:195万
展开全部
this指代当前对象,即调用者本身
var f = function(){
alert(this.name);
}
window.name='window';
var a={name:'a'};
f();//输出 window 程序被window调用
f.call(a);//输出 a 程序被a调用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式