不知道你在开发中是否遇到过this的指向为undefined的问题呢

例如:

class Doge {constructor (name,age){this.name = name this.age = age
}
cry(){//console.log(this)
}
const d = new Dog('旺财','8')
const x = d.cry()
x()     //undefined 

为什么打印为undefined 呢,首先明确的是类中所有定义的方法,在浏览器运行时候全部都加上了 user strict,何为user strict,就是浏览器的严格模式。那第二个问题就来了,为什么在严格模式下就为undefined。严格模式下无法再意外创建全局变量记住这点就可以了。

<html>
<script type="text/javascript">
"use strict";
var foo = function foo(){console.log(this)
};
foo();//undefined
</script>
</html>

二、另外严格模式对箭头函数没有效果

由于这来自于周围的词法上下文,因此与此相关的严格模式规则将被忽略。词法的意思是this引用一个词法封闭函数的this值。

<html>
<script type="text/javascript">
"use strict";
var foo = () => {console.log(this)
};
foo(); //Window
</script>
</html>

严格模式

this的指向为什么是undefined相关推荐

  1. 深入理解call、apply、bind(改变函数中的this指向)

    在JavaScript中call.apply.bind是Function 对象自带的三个方法,这三个方法的主要作用是改变函数中的 this 指向,从而可以达到`接花移木`的效果.本文将对这三个方法进行 ...

  2. 有关 this 指向问题总结

    this指向的几种情况: window 函数直接执行,函数名+括号 (非箭头函数) 匿名函数自执行 定时器直接调用 箭头函数暴露在全局 事件触发的元素 事件函数(不能是箭头函数)被触发的时候,事件函数 ...

  3. js this指向哪里 JavaScript this指向

    非箭头函数中的this指向一般都是调用者 在非箭头函数中 谁调用了函数,那么函数的this指向就是谁 比如       let obj1 = {         name:'obj1',       ...

  4. 解决Uncaught TypeError Cannot read properties of undefined (reading ‘props‘)

    今天在react中子父传参里, 点击按钮向父组件传递信息时出现了这个错误如图:↓ 这个问题很明显, 从字面意思看就是props前面的这个值没有找到, 然后看源码里面, 前面是个this, 如下图: 也 ...

  5. 理解Vue中的methods对象方法里的this指向,并解读源码

    Vue3的版本 "version": "3.2.20" 阅读区域 618 - 645 解决疑惑 1. methods 对象的 this指向 2. methods ...

  6. javascript函数的进阶使用方法(this指向,深浅拷贝等)

    JavaScript函数进阶 函数的定义和调用 函数的定义方式 函数的调用 this 函数内部的this指向 改变函数内部 this 指向 call方法 apply方法 bind方法 call.app ...

  7. js中null和undefined区别

    null是空对象引用,引用指向为空 undefined是只定义了引用 typeof null:"object" typeof undefined : "undefined ...

  8. 严格模式下的this指向

    之前写了一个,普通模式下的this指向,如果大家有不理解的可以看一看this的指向_刘依铭的博客-CSDN博客this的指向在不同的位置是不同的,但是,在学习过程中,this的指向问题一直是初学者的困 ...

  9. 39 JavaScript中的严格模式

    技术交流QQ群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder的程序人生 1.什么是严格模式(strict model) JavaScript除了提供正常模式外,还 ...

  10. JavaScript箭头函数(Arrow Function)

    2019独角兽企业重金招聘Python工程师标准>>> ES6标准新增了一种新的函数:Arrow Function(箭头函数). 更简洁的语法 我们先来按常规语法定义函数: func ...

最新文章

  1. 氮化镓充电器哪家好_双十二推荐入手的热门氮化镓充电器
  2. LINUX BASH SHELL,小小学习一下
  3. 201521123032 《Java程序设计》第7周学习总结
  4. mongoose获取最高分
  5. php js offset,获取元素的偏移量offset实例详解
  6. python输入一个字符串、输出他的所以组合_Swift - 排列组合之全排列 (输入一个字符串,输出该字符串包含的字符的所有组合)...
  7. 蓝桥杯 BASIC-8 基础练习 回文数
  8. 天体物理科研作图格式-要求-plot_example.py
  9. java基础编程题库_JAVA基础编程练习题
  10. 阿里视频播放vodPlayer.setMuteMode(true) 设置静音失效的解决办法
  11. vrep和matlab,使用Matlab与V-REP联合仿真 - Play V-REP with Matlab
  12. Java毕业设计-小区物业管理系统
  13. 功能安全-26262-理论到实践-基础知识-基于可靠性理论的的SIL与基于系统理论的STAMP
  14. SGD(随机梯度下降)
  15. iframe嵌套视频,视频全屏用不了
  16. try 、catch、finally用法总结
  17. TX2配置RealSense D455相机SDK和ros驱动
  18. 使用dockers在服务器操作redis,下载安装测试等
  19. postgresql encode函数
  20. 如何制作二维码定时刷新的效果?

热门文章

  1. 886. 可能的二分法
  2. 谷歌,Google,Chrome,检查工具栏常用功能介绍
  3. HDU-4747 Mex
  4. 服务器sel信息是什么意思,英特尔?服务器主板 — 如何解压和读取的服务器事件日志(SEL)...
  5. 对于超前,滞后,超前滞后使用范围
  6. alpha测试和betal测试
  7. 基于Diffie-Hellman协议 的安全密钥交换的实现原理
  8. 0基础怎么自学软件测试?
  9. C语言数字图像处理进阶---6 LOMO滤镜
  10. 【剖析 | SOFARPC 框架】系列之SOFARPC序列化比较