【核心基础知识】函数、原型、作用域

本文详细探讨了JavaScript中的函数、原型和作用域。从this关键字的用法开始,解释了如何确定this的指向,尤其是在不同调用场景下的变化。接着讨论了函数转换的概念,如toString()和valueOf(),并介绍了如何实现一个支持连续调用的add()函数。然后深入讲解了原型和原型链,阐述了如何通过原型链实现对象的继承。最后,文章分析了JavaScript的作用域,包括变量的命名提升和闭包的使用,以及如何利用闭包实现单例模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据类型与函数是很多高级语言中最重要的两个概念,前者用来存储数据,后者用来存储代码。JavaScript 中的函数相对于数据类型而言更加复杂,它可以有属性,也可以被赋值给一个变量,还可以作为参数被传递......正是这些强大特性让它成了 JavaScript 的“一等公民”。下面我们就来详细了解函数的重要特性。

一、this关键字

什么是 this?this 是 JavaScript 的一个关键字,一般指向调用它的对象。

这句话其实有两层意思,首先 this 指向的应该是一个对象,更具体地说是函数执行的“上下文对象”。其次这个对象指向的是“调用它”的对象,如果调用它的不是对象或对象不存在,则会指向全局对象(严格模式下为 undefined)。

下面举几个例子来进行说明。

  • 当代码 1 执行 fn() 函数时,实际上就是通过对象 o 来调用的,所以 this 指向对象 o。
  • 代码 2 也是同样的道理,通过实例 a 来调用,this 指向类实例 a。
  • 代码 3 则可以看成是通过全局对象来调用,this 会指向全局对象(需要注意的是,严格模式下会是 undefined)。
// 代
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仰望星空的代码

创作不易,您的支持是我的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值