探索云世界
this是指向的哪个全局变量,改变this指向的方法有几种
2024-05-0812
版权
版权声明:
本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议》和 《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
简介:this是指向的哪个全局变量,改变this指向的方法有几种
在JavaScript中,this是一个特殊的关键字,指向当前函数的执行环境或者当前调用函数的对象。它的具体指向取决于函数的调用方式。
- 在全局作用域中,this指向全局对象,在浏览器环境中是window对象。
- 在函数中,this的值取决于函数的调用方式:
- 当函数作为对象的方法调用时,this指向该对象。
- 当函数作为普通函数调用时,this指向全局对象(非严格模式下)或undefined(严格模式下)。
- 当函数作为构造函数调用时,this指向新创建的实例对象。
- 当函数通过call、apply、bind等方法间接调用时,this由调用者指定。
改变this指向的方法有以下几种:
- 使用箭头函数:箭头函数没有自己的this,它会捕捉最近的非箭头函数的this作为自己的this值。
- 使用bind方法:使用函数的bind方法可以创建一个新函数,调用这个新函数时,它的this值将绑定为bind的第一个参数。
- 使用call和apply方法:通过调用call或apply方法,可以显式地指定函数的this值。call方法接受一个指定的this值和一系列参数,apply方法接受一个指定的this值和一个参数数组。
- 使用ES6的解构赋值:通过使用解构赋值,可以将对象的方法提取出来,然后再调用时指定this值。
- 使用ES6的class中的箭头函数:在ES6的class中,可以使用箭头函数定义方法,这样方法中的this将会被绑定为实例对象。
总结起来,改变this指向的方法有箭头函数、bind方法、call和apply方法、解构赋值、ES6的class中的箭头函数。
文章标签:
目录
相关文章
C++中的引用和指针:区别与应用
引用和指针在C++中都有其独特的优势和应用场景。引用更适合简洁、安全的代码,而指针提供了更大的灵活性和动态内存管理的能力。在实际编程中,根据需求选择适当的类型,能够编写出高效、可维护的代码。理解并正确使用这两种类型,是掌握C++编程的关键一步。
C++ 引用和指针:内存地址、创建方法及应用解析
'markdown'C++ 中的引用是现有变量的别名,用 `&` 创建。例如:`string& meal = food;`。指针通过 `&` 获取变量内存地址,用 `*` 创建。指针变量存储地址,如 `string *ptr =& food;`。引用不可为空且不可变,指针可为空且可变,适用于动态内存和复杂数据结构。两者在函数参数传递和效率提升方面各有优势。 ```
C++使用new来初始化指向类的指针
C++使用new来初始化类的指针 1.ClassName * p = new ClassName; 调用默认构造函数。 如果类里没有写默认构造函数,会使用编译器帮我们生成的,但不会初始化成员变量,如 class NoConstructor //没写构造函数的类 { public: ~NoConstructor() {} void printVal() { cout<< m_val<< endl; } private: int m_val; }; NoConstructor* p1 = new NoConstruct
热门文章
最新文章
1
算法金 | K-均值、层次、DBSCAN聚类方法解析
22
2
m基于深度学习的卫星遥感图像轮船检测系统matlab仿真,带GUI操作界面
20
3
ELK与Fluentd的结合
27
4
基于GA遗传优化的混合发电系统优化配置算法matlab仿真
33
5
【题解】—— LeetCode一周小结25
31
6
《手把手教你》系列基础篇(八十一)-java+ selenium自动化测试-框架设计基础-TestNG如何暂停执行一些case(详解教程)
32
7
基于布谷鸟搜索的多目标优化matlab仿真
26
8
JavaScript小数四舍五入的代码
22
9
MaxCompute产品使用问题之整库实时需要申请什么东西
22
10
MaxCompute产品使用问题之创建了oss外表,格式指定的parquet,然后执行的写入,发现不是标准parquet的格式,该怎么办
25