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万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...