29、es6 中的class类的深入理解_Web培训中JavaScript this指的是什么?

Web前端是目前比较火的行业,但想要轻松找到高薪工作,一定要具备扎实的基础和丰富的项目经验,所以在学习web前端中一定要打好基础学好重要知识点。JavaScript是web前端中重要的部分,今天就给大家介绍web前端中JavaScript this的应用。

要说 JavaScript 这门语言最容易让人困惑的知识点,this 关键词肯定算一个。JavaScript 语言面世多年,一直在进化完善,现在在服务器上还可以通过 node.js 来跑 JavaScript。显然,这门语言还会活很久。

edb1dbe03ed788718465b5a3f2e7cb99.png

如果你是一个 JavaScript 开发者或者说 web 开发者,学好 JavaScript 的运作原理以及语言特点肯定对你以后大有好处。开始之前强烈推荐你先掌握好下面的知识:

变量作用域和作用域提升

JavaScript 的函数

闭包

如果没有对这些基础知识掌握踏实,直接讨论 JavaScript 的 this 关键词只会让你感到更加地困惑和挫败。

什么是 this ?

如果你学过一门基于类的面向对象编程语言(比如 C#,Java,C++),那请将你对 this 这个关键词应该是做什么用的先入为主的概念扔到垃圾桶里。JavaScript 的 this 关键词是很不一样,因为 JavaScript 本来就不是一门基于类的面向对象编程语言。

虽说 ES6 里面 JavaScript 提供了类这个特性给我们用,但它只是一个语法糖,一个基于原型继承的语法糖。

this 就是一个指针,指向我们调用函数的对象。

请记住,在 Class 添加到 ES6 之前,JavaScript 中没有 Class 这种东西。Class 只不过是一个将对象串在一起表现得像类继承一样的语法糖,以一种我们已经习惯的写法。所有的魔法背后都是用原型链编织起来的。

如果上面的话不好理解,那你可以这样想,this 的上下文跟英语句子的表达很相似。比如下面的例子

Bob.callPerson(John);

就可以用英语写成 “Bob called a person named John”。由于 callPerson() 是 Bob 发起的,那 this 就指向 Bob。我们将在下面的章节深入更多的细节。到了这篇文章结束时,你会对 this 关键词有更好的理解(和信心)。

执行上下文

执行上下文 是语言规范中的一个概念,用通俗的话讲,大致等同于函数的执行“环境”。具体的有:变量作用域(和 作用域链条,闭包里面来自外部作用域的变量),函数参数,以及 this 对象的值。

引自: Stackoverflow.com

记住,现在起,我们专注于查明 this 关键词到底指向哪。因此,我们现在要思考的就一个问题:

是什么调用函数?是哪个对象调用了函数?

为了理解这个关键概念,我们来测一下下面的代码。

var person = {

name: "Jay

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值