新闻中心
js中this的六种模式
this的指向取决于函数调用方式,共六种绑定模式:1. 全局环境中this指向window(浏览器)或global(Node.js);2. 独立调用时非严格模式指向全局对象,严格模式为undefined;3. 作为对象方法调用时this指向调用者;4. 构造函数中this指向新创建的实例;5. 显式绑定通过call、apply、bind指定this值;6. 箭头函数的this继承外层作用域,不可被显式改变。关键在于调用方式而非定义位置。

在 J*aScript 中,this 的指向并不是固定不变的,它的值取决于函数是如何被调用的。理解 this 的指向是掌握 JS 核心机制的关键之一。以下是 this 的六种常见绑定模式:
1. 全局环境中的 this
在全局执行环境中(浏览器中),无论是否严格模式,this 都指向全局对象。
- 浏览器中,this 指向 window
- Node.js 环境中,this 指向 global
console.log(this === window); // true(浏览器中)
2. 函数独立调用
当一个普通函数被直接调用时,this 的指向取决于是否启用严格模式。
- 非严格模式下:this 指向全局对象(window)
- 严格模式下(use strict):this 为 undefined
function foo() {
console.log(this);
}
foo(); // 非严格模式:window;严格模式:undefined
3. 对象方法中的 this
当函数作为对象的方法被调用时,this 指向该对象。
- 谁调用了方法,this 就指向谁
const obj = {
name: 'Alice',
greet() {
console.log(this.name);
}
};
obj.greet(); // 输出 'Alice',this 指向 obj
4. 构造函数中的 this
使用 new 调用函数时,this 指向新创建的实例对象。
UQ云商B2B2C系统
UQCMS云商是一款B2B2C电子商务软件 ,非常适合初创的创业者,个人及中小型企业。程序采用PHP+MYSQL,模板采用smarty模板,二次开发,简单方便,无需学习其他框架就可以自行模板设计。永久免费使用,操作简单,安全稳定。支持PC+WAP+微信三种浏览方式,支持微信公众号。
1
查看详情
- 构造函数内部的 this 代表即将创建的新对象
- new 操作会创建一个新对象并将其绑定到 this
function Person(name) {
this.name = name;
}
const p = new Person('Bob');
console.log(p.name); // 'Bob'
5. 显式绑定(call、apply、bind)
通过 call、apply 或 bind 方法可以显式指定 this 的指向。
- call(arg, ...args):立即调用,参数逐个传入
- apply(arg, [args]):立即调用,参数为数组
- bind(arg):返回新函数,this 固定为指定对象
function sayHi() {
console.log(this.name);
}
const user = { name: 'Tom' };
sayHi.call(user); // 'Tom'
6. 箭头函数中的 this
箭头函数没有自己的 this,它的 this 继承自外层作用域(词法作用域)。
- 不会被 call、apply、bind 改变
- 始终指向定义时所在上下文的 this
const obj = {
name: 'Lucy',
regularFunc: function() {
const arrowFunc = () => {
console.log(this.name); // 'Lucy'
};
arrowFunc();
}
};
obj.regularFunc(); // 箭头函数的 this 指向外层函数的 this
基本上就这些。掌握这六种模式,能帮你准确判断 this 在各种场景下的指
向。关键是看函数如何被调用,而不是如何定义。不复杂但容易忽略细节。
以上就是js中this的六种模式的详细内容,更多请关注其它相关文章!
# 如何使用
# 双辽网络推广和营销
# 钟祥通信建设招聘网站
# seo网站排名优化哪家好
# 教育行业seo推广宣传
# 抖音禁止seo吗
# 企业网站怎么推广好做的
# 沧州全网营销推广系统
# 农产品营销推广模式分析
# 武清区公司网站建设
# 新乡网站霸屏推广招商
# 模式下
# 器中
# 它很
# 自己的
# javascript
# 管理器
# 有何
# 有什么
# 绑定
# 六种
# 作用域
# win
# app
# 浏览器
# node
# node.js
# js
# java
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
从J*aScript对象中精确提取指定属性的教程
汽水音乐车机版横屏版7.1 汽水音乐车机版横屏版下载入口
抖音未来赚钱的新趋势 2025年值得关注的变现风口分析
c++中的std::launder有什么实际用途_c++对象生命周期与指针优化
Win10如何清理注册表垃圾 Win10注册表维护与优化指南【慎用】
PHP URL参数传递与500错误调试指南
Python多线程中正确使用sigwait处理SIGALRM信号
蛙漫漫画免费阅读入口_蛙漫官方正版无广告纯净版
composer的"require-dev"部分是用来做什么的?
豆包手机助手发布技术预览版:直接嵌入手机系统!努比亚样机发售
Animex动漫社网入口地址 Animex动漫社网正版在线入口
J*a递归快速排序中静态变量导致数据累积问题的解决方案
qq浏览器打开空白页怎么办 qq浏览器启动后显示白屏的解决教程
b站怎么删除评论_b站评论管理与删除操作
J*aScript:在map操作中高效处理空数组
b站赚钱渠道_b站收益来源
Python模块化编程:有效管理依赖与避免循环引用
J*aScript数组对象转换:按指定键分组与值收集
快手官方唯一登录入口 谨防山寨钓鱼网站
自定义Bag-of-Words实现:处理带负号的词汇权重
如何在Python中使用Optional类型处理可变对象并避免Pylint警告
Win11怎么开启省电模式_Win11电池节电模式自动开启
J*a编写用户注册与登录功能_掌握字符串与验证逻辑
哔哩哔哩忘记密码了怎么找回_哔哩哔哩密码找回方法
Win11蓝牙耳机断连怎么解决 Win11蓝牙设置重新配对与驱动更新【技巧】
Node.js中HTML按钮与J*aScript函数交互的正确姿势
Golang如何使用const iota_Go iota常量计数器讲解
J*aScript设计模式实践_j*ascript代码优化
美团外卖商家服务中心入口 美团商家版官网入口
中兴BladeV30怎样用测距估书架层高_iPhone中兴BladeV30测距估书架层高【家装参考】
qq游戏免费畅玩入口_qq游戏电脑版快速启动
J*aScriptWebpack优化_J*aScript构建工具实战
PHP 枚举:根据字符串获取枚举案例的策略与实现
顺丰快件物流信息 官方网站查询入口
AO3最新可访问网址 Archive of Our Own官方在线入口
韩小圈电脑版在线入口_网页版免费登录地址
163邮箱注册官网 免费申请163个人邮箱
wps文字怎么插入目录并自动更新_wps文字如何插入目录并自动更新方法
护手霜蹭到袖口上了如何清洗? 怎样避免留下一圈油印?
智慧团建扫码登录入口 智慧团建扫码登录入口官网版
如何使用Rector自动化升级旧代码_通过Composer安装和配置Rector进行代码重构
CKEditor 5 自定义构建在React应用中渲染失败的调试与解决
J*aScript教程:根据元素文本内容动态设置背景色
如何更改在 Excel 中打开超链接时的默认浏览器
在VS Code中配置和运行Dart程序的完整步骤
提升屏幕阅读器对“m”时间单位的播报准确性:HTML与CSS组合解决方案
J*aScript实现单选按钮与关联输入框的联动禁用教程
win11怎么查看应用耗电情况 Win11电池设置查看应用能耗排行榜【优化】
Python实时数据流中的动态最值查找策略
千牛数据看板网页版_千牛数据看板网页版访问方法


2025-11-10
浏览次数:次
返回列表