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一下。

相关内容

热门资讯

荼蘼什么意思 岁月缱绻葳蕤生香... 感谢作者【辰夕】的原创独家授权分享编辑整理:【多肉植物百科】百科君坐标:云南 曲靖春而至,季节流转,...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...