新闻中心

js中this的几种用法

2025-11-13
浏览次数:
返回列表
this的指向在运行时由函数调用方式决定:1. 全局环境中指向window(浏览器)或global(Node.js);2. 普通函数调用时非严格模式指向window,严格模式为undefined;3. 作为对象方法调用时指向该对象,但单独引用后调用会丢失绑定;4. 构造函数中指向新创建的实例;5. 箭头函数无独立this,继承外层作用域的this;6. 可通过call、apply、bind显式绑定this指向。关键在于理解调用上下文而非定义位置。

js中this的几种用法

在J*aScript中,this 的指向不是在编写时决定的,而是在运行时根据函数的调用方式动态确定。理解 this 的指向是掌握 J*aScript 的关键之一。以下是 this 的几种常见用法和指向规则。

1. 全局环境中的 this

在全局执行环境中(浏览器中),无论是否严格模式,this 都指向全局对象。

  • 浏览器中,this 指向 window 对象。
  • Node.js 环境中,this 指向 global 对象。
示例:
console.log(this === window); // true(在浏览器中)

2. 函数中的 this

函数内部的 this 取决于函数如何被调用。

  • 非严格模式下,独立函数调用时,this 指向全局对象(window)。
  • 严格模式下("use strict"),this 为 undefined。
示例:
function fn() {
  console.log(this);
}
fn(); // 非严格模式:window;严格模式:undefined

3. 对象方法中的 this

当函数作为对象的方法被调用时,this 指向该对象。

示例:
const obj = {
  name: 'Alice',
  greet() {
    console.log('Hello, ' + this.name);
  }
};
obj.greet(); // 输出:Hello, Alice

注意:如果将方法赋值给变量再调用,this 会丢失绑定。

衣购网站项目(三层开发)源码 衣购网站项目(三层开发)源码

商品查询功能提供了一个快速查看商品的途径。商品查询分为基本查询和高级查询。基本查询:提供关键字和商品大类两种条件的查询,用户可以只填写关键字或者选择商品大类或者关键字和商品大类都填写来查询商品。高级查询:提供关键字,商品大类,商品小类,商品价格范围四种条件的查询,用户可以任意填写其中一种或几种的查询条件来查询想要了解的商品信息。商品查询功能大大的方便了用户,提高了网站的用户体验。(5)帮助系统模块

衣购网站项目(三层开发)源码 0 查看详情 衣购网站项目(三层开发)源码
const func = obj.greet;
func(); // 输出:Hello, undefined(this 指向 window 或 undefined)

4. 构造函数中的 this

使用 new 调用函数时,this 指向新创建的实例对象。

示例:
function Person(name) {
  this.name = name;
}
const p = new Person('Bob');
console.log(p.name); // 输出:Bob

5. 箭头函数中的 this

箭头函数没有自己的 this,它的 this 继承自外层作用域(词法作用域)。

示例:
const obj = {
  value: 42,
  normalFunc: function() {
    console.log(this.value); // 正常输出 42
  },
  arrowFunc: () => {
    console.log(this.value); // undefined(this 指向外层,通常是 window)
  }
};
obj.normalFunc(); // 42
obj.arrowFunc();  // undefined

6. 显式绑定 this(call、apply、bind)

可以使用 call、apply 或 bind 方法手动指定 this 的指向。

  • call(thisArg, arg1, arg2, ...):立即调用函数,参数逐个传入。
  • apply(thisArg, [argsArray]):立即调用函数,参数以数组形式传入。
  • bind(thisArg):返回一个新函数,this 被永久绑定到指定对象。
示例:
function showName(prefix) {
  console.log(prefix + this.name);
}
const user = { name: 'Tom' };
showName.call(user, 'Name: ');   // Name: Tom
showName.apply(user, ['Hi: ']);  // Hi: Tom
const boundFunc = showName.bind(user);
boundFunc('Bound: ');            // Bound: Tom

基本上就这些。掌握 this 的核心在于理解函数是如何被调用的,而不是定义在哪里。不同调用方式决定了 this 的指向,尤其要注意箭头函数的特殊性以及显式绑定的使用场景。

以上就是js中this的几种用法的详细内容,更多请关注其它相关文章!


# 如何使用  # 网站优化必须做的事例  # seo优化有什么意思  # 大鹏seo外包  # 新华区网站建设电话  # 关于网站建设指南的通知  # 做关键词排名工具  # 网络关键词排名报价  # 大连网站优化推广方案  # 做seo的人多吗  # 无极网站建设费用标准  # 器中  # 它很  # 查询功能  # 自己的  # javascript  # 管理器  # 有何  # 有什么  # 几种  # 绑定  # 作用域  # win  # app  # 浏览器  # node  # node.js  # js  # java 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 处理嵌套交互式控件:前端可访问性指南  sublime怎么进行远程开发编辑_配置rsub/rmate实现sublime编辑服务器文件  AO3最新可访问网址 Archive of Our Own官方在线入口  晋江读书网页版在线登录 晋江读书电脑版官网  C++ explicit关键字防止隐式转换_C++构造函数安全规范  PowerPoint如何制作滚动字幕结尾彩蛋_PowerPoint路径动画实现平滑滚动字幕效果  yy漫画网页版官方入口_yy漫画官网登录页面链接  神经网络二分类模型训练异常:高损失与完美验证准确率的排查与修正  零跑汽车11月交付量达70327台 实现连续9个月正增长  PPT平滑切换怎么做 PPT炫酷“平滑”切换动画制作教程【必学】  美团外卖商家服务中心入口 美团商家版官网入口  高德地图怎么看全景照片_高德地图全景照片浏览教程  J*aScriptWebpack优化_J*aScript构建工具实战  Yandex搜索引擎一键访问入口_俄罗斯Yandex官网免登录  荒野行动PC版怎么注册_荒野行动PC版账号注册详细流程图文教程  夸克AO3官网入口_AO3镜像网站2025推荐  漫蛙漫画官方主页入口 漫蛙MANWA网页直达访问链接  痛风发作了怎么办? 快速止痛和后期饮食调理  c++ 命名空间怎么用 c++ namespace使用指南  outlook中文官网入口地址 outlook官方中文版直达首页链接  谷歌google账号怎么注册账号 谷歌账号注册官方流程  C++如何生成随机数_C++ random库使用方法与范围设置  css元素hover动画延迟生效怎么办_使用animation-delay调整触发时间  如何使用 Excel 发布器与 Power BI 分享 Excel 洞察  C#中解析不规范的HTML为XML 常见的坑与解决办法  PS5 Pro有点优势但不多! 《燕云十六声》PS5平台与PC性能画面对比  狙击外星人小游戏开始_狙击外星人小游戏立即开始  如何在 Excel Online 和 Google 表格中更改日期格式  zookeeper 都有哪些功能?  《燕云十六声》两周内达九百万玩家!位居畅销榜第五  Angular响应式表单:实现提交后表单及按钮的禁用与只读化  Golang如何通过reflect操作map_Golang reflect map操作与遍历技巧  yandex入口引擎手机版 yandex安卓版下载入口  Composer如何解决json扩展缺失的错误  谷歌浏览器怎么给标签页静音_Chrome标签静音快捷操作  Django通过AJAX异步上传图片并保存至模型的完整指南  Pandas DataFrame:高效添加条件计算列  极速漫画官方主页网址 极速漫画漫画在线浏览官网链接  b站怎么删除评论_b站评论管理与删除操作  AO3官网镜像链接 Archive of Our Own同人文在线浏览  魅族20怎样在浏览器开无图省流_iPhone魅族20浏览器开无图省流【流量节省】  德邦快递查询平台 德邦快递物流信息查询入口  包子漫画官方网站阅读入口-包子漫画在线漫画官网直达链接  网易大神账号申诉需要多久_网易大神账号申诉流程说明  在Runstone环境中高效处理TasteDive API的JSON数据  QQ邮箱在线登录平台 QQ邮箱个人邮箱网页版入口  MAC的“快捷指令”怎么同步到iPhone_MAC利用iCloud同步所有设备的自动化指令  CSS图片焦点样式实现教程:理解与应用tabindex属性  深入理解rpy2中的类型转换:优化Python对象到R矩阵的映射  拷贝漫画电脑版官网入口 拷贝漫画(PC版)在线直达 

搜索