JavaScript this 解析
创始人
2025-05-30 15:14:55

前言

JavaScript中this是非常灵活的,也是在学习JavaScript中的一个重要的点。下面主要从普通函数和箭头函数来解析this。通过一个示例来加深理解

普通函数

:对于对象中的函数即方法使用到this,那么这个this的值就是该对象的值。
: JavaScript中的this不受限制也就是说普通函数也能有this,此时this是在代码运行时被计算出来的,它取决于代码的上下文。如以下示例

    "use strict";let user = {name: "xiaoming",sayHi:function(){console.log(this.name);}};let admin = {name: "laowang",sayHi:function(){console.log(this.name);}};user.sayHi();admin.sayHi();

输出

xiaoming
laowang

    "use strict";function sayHi(){console.log(this.name);}let user = {name: "xiaoming",};let admin = {name: "laowang",};user.sayHi = sayHi;admin.sayHi = sayHi;user.sayHi();admin.sayHi();

输出

xiaoming
laowang

示例三参考第一个任务

箭头函数有些特别:它们没有自己的this。如果我们在这样的函数中引用this, this的值取决于外部“正常的函数”。这句话可能有点难理解。箭头函数不会创建自己的this,所以它没有自己的this,它只会在自己作用域的上一层继承this。所以箭头函数中this的指向在它定义时以及确定了,之后不会被改变。
例子

    "use strict";let user = {name: "tanglin",sayHi: function(){let arrow = ()=>{console.log(this.name);};arrow();}};user.sayHi();

输出

tanglin

理解
在这里插入图片描述
例子

    "use strict";let user = {name: "tanglin",sayHi: ()=>{alert(this.name);}};user.sayHi();

输出

不能获取到想要的结果,此时的this 是 window 。疑问 按道理来说使用了 "use strict" this 应该是 undefined。但是我得到的结果确实是 window。mark一下。

相关内容

热门资讯

应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...