this的指向为什么是undefined
不知道你在开发中是否遇到过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相关推荐
- 深入理解call、apply、bind(改变函数中的this指向)
在JavaScript中call.apply.bind是Function 对象自带的三个方法,这三个方法的主要作用是改变函数中的 this 指向,从而可以达到`接花移木`的效果.本文将对这三个方法进行 ...
- 有关 this 指向问题总结
this指向的几种情况: window 函数直接执行,函数名+括号 (非箭头函数) 匿名函数自执行 定时器直接调用 箭头函数暴露在全局 事件触发的元素 事件函数(不能是箭头函数)被触发的时候,事件函数 ...
- js this指向哪里 JavaScript this指向
非箭头函数中的this指向一般都是调用者 在非箭头函数中 谁调用了函数,那么函数的this指向就是谁 比如 let obj1 = { name:'obj1', ...
- 解决Uncaught TypeError Cannot read properties of undefined (reading ‘props‘)
今天在react中子父传参里, 点击按钮向父组件传递信息时出现了这个错误如图:↓ 这个问题很明显, 从字面意思看就是props前面的这个值没有找到, 然后看源码里面, 前面是个this, 如下图: 也 ...
- 理解Vue中的methods对象方法里的this指向,并解读源码
Vue3的版本 "version": "3.2.20" 阅读区域 618 - 645 解决疑惑 1. methods 对象的 this指向 2. methods ...
- javascript函数的进阶使用方法(this指向,深浅拷贝等)
JavaScript函数进阶 函数的定义和调用 函数的定义方式 函数的调用 this 函数内部的this指向 改变函数内部 this 指向 call方法 apply方法 bind方法 call.app ...
- js中null和undefined区别
null是空对象引用,引用指向为空 undefined是只定义了引用 typeof null:"object" typeof undefined : "undefined ...
- 严格模式下的this指向
之前写了一个,普通模式下的this指向,如果大家有不理解的可以看一看this的指向_刘依铭的博客-CSDN博客this的指向在不同的位置是不同的,但是,在学习过程中,this的指向问题一直是初学者的困 ...
- 39 JavaScript中的严格模式
技术交流QQ群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder的程序人生 1.什么是严格模式(strict model) JavaScript除了提供正常模式外,还 ...
- JavaScript箭头函数(Arrow Function)
2019独角兽企业重金招聘Python工程师标准>>> ES6标准新增了一种新的函数:Arrow Function(箭头函数). 更简洁的语法 我们先来按常规语法定义函数: func ...
最新文章
- 氮化镓充电器哪家好_双十二推荐入手的热门氮化镓充电器
- LINUX BASH SHELL,小小学习一下
- 201521123032 《Java程序设计》第7周学习总结
- mongoose获取最高分
- php js offset,获取元素的偏移量offset实例详解
- python输入一个字符串、输出他的所以组合_Swift - 排列组合之全排列 (输入一个字符串,输出该字符串包含的字符的所有组合)...
- 蓝桥杯 BASIC-8 基础练习 回文数
- 天体物理科研作图格式-要求-plot_example.py
- java基础编程题库_JAVA基础编程练习题
- 阿里视频播放vodPlayer.setMuteMode(true) 设置静音失效的解决办法
- vrep和matlab,使用Matlab与V-REP联合仿真 - Play V-REP with Matlab
- Java毕业设计-小区物业管理系统
- 功能安全-26262-理论到实践-基础知识-基于可靠性理论的的SIL与基于系统理论的STAMP
- SGD(随机梯度下降)
- iframe嵌套视频,视频全屏用不了
- try 、catch、finally用法总结
- TX2配置RealSense D455相机SDK和ros驱动
- 使用dockers在服务器操作redis,下载安装测试等
- postgresql encode函数
- 如何制作二维码定时刷新的效果?