this 为undefined的情况

首先我们要知道

在严格模式下,独立function中的this指向为undefined;非严格模式指向为全局作用域。

而在es6的当中:

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

     'use strict'function a() {b()function b() {console.log(this);}}a()//undefined

如果不使用'use strict',打印的就是指向window

看看

 class Person {constructor(name) {this.name = namethis.init()this.geter()}init() {console.log(this);}geter() {function success() {console.log(this);}success()/* 这里是在没有严格模式的情况下是window来调用,但严格模式下没有window,所以是undefined */}}let jack = new Person('jack')

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

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

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

this在什么时候为undefined相关推荐

  1. [JS] undefined、null、ReferenceError的区别、变量作用域问题

    undefined.null.ReferenceError的区别 null表示"没有对象",即该处不应该有值. 典型用法是: (1) 作为函数的参数,表示该函数的参数不是对象. ( ...

  2. 解剖JavaScript中的null和undefined

    在JavaScript开发中,被人问到:null与undefined到底有啥区别? 一时间不好回答,特别是undefined,因为这涉及到undefined的实现原理.于是,细想之后,写下本文,请各位 ...

  3. ajax异步传输数据时return返回总是undefined(转载)

    写ajax传送数据时,需要用到异步,如上代码即总会返回undefined,很是费解.各种方式调试,后来广阅网上博客 ,发现其实很多人遇到过这样的问题,大家都说原因是Jquery的ajax是异步,大多时 ...

  4. golang etcd 报错 undefined: resolver.BuildOption 解决方案

    1. 问题现象 import ("github.com/coreos/etcd/clientv3" ) 在使用 github.com/coreos/etcd/clientv3 时代 ...

  5. golang 同一个包中函数互相调用报错 undefined 以及在 VSCode 中配置右键执行整个包文件

    1. 代码结构 demo 文件夹下有两个文件,分别为 hello.go 和 main.go ,结构如下: wohu@wohu:~/GoCode/src$ tree demo/ demo/ ├── he ...

  6. VS Code go 插件安装失败 r.declReader.Reset undefined

    在安装完 VS Code 后开始安装 go 的插件发现有如下错误 wohu@wohu:~/GoCode/src$ go install github.com/nsf/gocode # github.c ...

  7. undefined reference to 'pthread_create'问题解决(转)

    undefined reference to 'pthread_create' undefined reference to 'pthread_join' 问题原因:     pthread 库不是 ...

  8. matlab matlabpool,Matlab matlabpool函数undefined

    我尝试使用matlab并行计算功能. 我先输入"版本"来检查,如果我已经安装了并行计算工具箱,它确实Matlab matlabpool函数undefined >> ve ...

  9. 判断为空:null、undefined、空字符串、中文空格

    /*判断为空*/ private isNull=data=> (data == null || (data.toString().replace(/\ |\ /g, "") ...

  10. js在post后台接口的时候,一行代码完成删除对象中所有值为null、undefined或为空字符串““的属性

    var d= {a: 1,b: null,c: 3,d: undefined };Object.keys(d).forEach(k=>d[k]==null&&delete d[k ...

最新文章

  1. 省选前的反演抢救计划
  2. HDU 1251 统计难题(Trie模版题)
  3. pc 图片预览放大 端vue_企业为什么需要建设PC+手机微信三合一全网营销的网站呢...
  4. Springboot遇到的问题
  5. 眼花缭乱的数据库,怎样选择?给你这个书单,想学哪个学哪个
  6. thinkPHP仿QQ飞车手游模拟抽奖源码
  7. bzoj 2660: [Beijing wc2012]最多的方案
  8. 从职业方向,谈程序员如何突破成长瓶疾,我们该怎么去学习?
  9. rt1052 usb速率_rt1052 spi flash 读数据好慢
  10. 201521123004 《Java程序设计》第2周学习总结
  11. 如何优雅的编写Objective-C语言?
  12. 2.2TextCNN
  13. 线性代数:矩阵及其运算
  14. DDPM代码详细解读(1):数据集准备、超参数设置、loss设计、关键参数计算
  15. 双系统linux开机黑屏,解决双系统中ubuntu开关机异常,黑屏,出现“nouveau , SCHED_ERROR”字样等的问题...
  16. vs2019新手怎么解决命名空间“”中不存在类型或命名空间名“”(是否缺少程序集引用?)问题全解
  17. DACAI串口屏使用
  18. 学堂云 减脂与运动塑形
  19. 快讯|腔家政服务商“懒猪到家”完成200万种子轮融资,卡伊妮洗衣连锁投资... 1
  20. GameFi 代币的单币与双币模型比较

热门文章

  1. 三、大数据时代下的SQL Server第三方负载均衡方案----Moebius测试
  2. C#_根据银行卡卡号判断银行名称
  3. ZUI————对话框闪退问题
  4. 回溯算法-八皇后问题
  5. Java 构造函数的详解
  6. 中国石油大学(华东)计算机/软件考研经验分享
  7. SofaRpc源码学习篇-netty以及跟dubbo骚操作,负载均衡
  8. 没有这个传奇工程师,就没有今天的Windows
  9. Jetson Nano 安装deepStream
  10. ccmall商城:“龙飞曦舞,日月鎏金”群星演唱会完美收官