一分钟搞懂 JavaScript this 指向问题

关于Javascriptthis指向问题,网络上有很多分析文章,写的很好,比如这里这里

我这里做一个简单的总结。

箭头函数的 this

箭头函数内的this指向外层函数定义时所在的作用域。如果没有外层函数,则指向全局作用域。

ES5 的 this

ES5this指向当前函数执行时所在的上下文。

注意:调用普通函数,它的this指向全局作用域。

什么是普通函数?

// 这就是
funtion a() {console.log(this)}

原文地址:https://www.cnblogs.com/fayin/p/9482952.html

时间: 2024-10-09 02:21:06

一分钟搞懂 JavaScript this 指向问题的相关文章

五个小例子教你搞懂 JavaScript 作用域问题

众所周知,JavaScript 的作用域和其他传统语言(类C)差别比较大,掌握并熟练运用JavaScript 的作用域知识,不仅有利于我们阅读理解别人的代码,也有助于我们编写自己的可靠代码. 下面笔者将使用五个小例子来给大家分析下 JavaScript 的作用域要注意的问题. 感谢 例子的来源 (这5个例子我做错了2个 [嘿嘿,尽情鄙视吧],笔者就是要 死磕自己,奉献大家!) 先给出五个例子: 每个例子旁边都会给出答案的链接,如果你全部都正确了,你可以忽略这篇短文,并深深的鄙视下笔者. 例一:

【白话篇】10分钟搞懂字符编码

如上图所示为常见的,让人看了头晕的 几个种编码. 看懂下面几条规则,你就明白他们的关系了. [1]有些人说,GBK严格来说是字符集,而utf-8则是编码,这种区分已经相当模糊了,他们都是"字节到字符的映射关系",所以下面都用编码来说吧. [2] ISO-8859-1 这种编码是单字节编码,衍生于ASCII,表示范围0-255,只要按照ASCII的规则设计的编码,不管是几字节的,都可以和ISO-8859-1兼容. [3]比如说,GBK编码(双字节)能转化成ISO-8859-1编码,是因为

3分钟搞懂曝光直方图(转)

3分钟搞懂曝光直方图 原文地址  http://www.fsbus.com/danfanrumen/24880.html 新手上路时,总是会问某张照片要用怎样的曝光参数,不过拍摄环境和光线随时在变,与求人不如求己!除了学会光圈.快门.ISO,还要知道照片怎样才算是恰当曝光.新手不担心难以决定曝光量是否恰当,因为数码相机的直方图(Histogram),就是判断曝光的好帮手. 这就是直方图,新手们刚看到这个都是懵的,这个起伏高低的是什么? 其实就是照片像素的明暗分布(Brightness Value

花10分钟搞懂开源框架吧 - 【NancyFx.Net】

原文:花10分钟搞懂开源框架吧 - [NancyFx.Net] NancyFx是什么? Nancy是一个轻量级的独立的框架,下面是官网的一些介绍: Nancy 是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台,框架的目标是保持尽可能多的方式,并提供一个super-duper-happy-path所有交互. Nancy 设计用于处理 DELETE, GET, HEAD, OPTIONS, POST, PUT 和 PATCH 等请求方法,并提供简单优雅的 DS

5分钟读懂JavaScript预编译流程

5分钟读懂JavaScript预编译流程 javascripttypescriptes6es5 阅读约 7 分钟 大家都知道JavaScript是解释型语言,既然是解释型语言,就是编译一行,执行一行,那又何来预编译一说呢?脚本执行js引擎都做了什么呢?今天我们就来看看吧. 1-JavaScript运行三部曲 语法分析 预编译 解释执行 语法分析很简单,就是引擎检查你的代码有没有什么低级的语法错误: 解释执行顾名思义便是执行代码了: 预编译简单理解就是在内存中开辟一些空间,存放一些变量与函数 :

01. SpringCloud实战项目-五分钟搞懂分布式基础概念

SpringCloud实战项目全套学习教程连载中 PassJava 学习教程 简介 PassJava-Learning项目是PassJava(佳必过)项目的学习教程.对架构.业务.技术要点进行讲解. PassJava 是一款Java面试刷题的开源系统,可以用零碎时间利用小程序查看常见面试题,夯实Java基础. PassJava 项目可以教会你如何搭建SpringBoot项目,Spring Cloud项目 采用流行的技术,如 SpringBoot.MyBatis.Redis. MySql. Mon

搞懂 JavaScript 继承原理

在理解继承之前,需要知道 js 的三个东西: 什么是 JS 原型链 this 的值到底是什么 JS 的 new 到底是干什么的 1. 什么是 JS 原型链? 我们知道 JS 有对象,比如 var obj = { name: "obj" }; 我们通过控制台把 obj 打印出来: 我们会发现 obj 已经有几个属性(方法)了.那么问题来了:valueOf / toString / constructor 是怎么来?我们并没有给 obj.valueOf 赋值呀. 上面这个图有点难懂,我手画

十分钟读懂JavaScript原型和原型链

原型(prototype)这个词来自拉丁文的词proto,意谓"最初的",意义是形式或模型.在JavaScript中,原型的探索也有很多有趣的地方,接下来跟随我的脚步去看看吧.原型对象释义每一个构造函数都有一个与之相关联的对象,该对象称之为原型对象.每个实例对象都能共享其原型对象上的属性和方法.原型对象的作用主要用来实现属性的继承,让实例对象能共享原型对象的属性,减少内存分配.所以,在上一节中,我们想在每个Person对象中共享同一个say方法,可以这样来实现.function Per

十分钟搞懂什么是CGI

原文:CGI Made Really Easy,在翻译的过程中,我增加了一些我在学习过程中找到的更合适的资料,和自己的一些理解.不能算是严格的翻译文章,应该算是我的看这篇文章的过程的随笔吧. CGI真的很简单 在此之前,你或许听说过很多说CGI'晦涩难懂'的言论.如果你会写最基本的输入输出,那么你就可以写出一个CGI脚本.如果你已经是一个程序员,你只需要几分整就可以明白CGI到底是个什么东西.如果你还不是一个名程序员,对不起这篇文章不是很适合你,你可以先去学习一些编程的知识,例如脚本语言或者sh