/*
总结:this 的指向:1.this 的指向 是在执行上下文时才确定的, 并且确定后不可更改;2.this 指向 “其执行上下文的环境对象”; “其执行上下文的环境对象” 判读依据如下:
*/
/*
浏览器环境下: 严格模式下:1.全局上下文中的 this“其执行上下文的环境对象”为,全局执行上下文的环境对象,而全局执行上下文的环境对象 为 Window对象;2.函数上下文中的 this情景一:apply、call、bind 指定环境对象“其执行上下文的环境对象”为,被指定的环境对象,无论是什么,即使是 null 或者 undefined;情景二:没有指定环境对象->1.作为 独立函数 执行“其执行上下文的环境对象”为 undefined;->2.作为 对象方法 执行“其执行上下文的环境对象”为 这个拥有它的对象;3.对象属性中的 this“其执行上下文的环境对象”为,全局执行上下文的环境对象 为 Window对象;4.构造函数 和 原型方法中的 this构造函数中:“其执行上下文的环境对象”为,以构造函数名命名的新对象;原型方法中:“其执行上下文的环境对象”为,构造函数的原型对象;非严格模式下:1.全局上下文中的 this(同 严格模式)2.函数上下文中的 this情景一:apply、call、bind 指定环境对象(同 严格模式)情景二:没有指定环境对象->1.作为 独立函数 执行“其执行上下文的环境对象”为 Window对象;->2.作为 对象方法 执行(同 严格模式)3.对象属性中的 this(同 严格模式)4.构造函数 和 原型方法中的 this构造函数中:(同 严格模式)原型方法中:(同 严格模式)*//*
Node环境下:严格模式下:1.全局上下文中的 this“其执行上下文的环境对象”为,全局执行上下文的环境对象 当前模块{},所以全局中 this 指向当前模块对象{};2.函数上下文中的 this情景一:apply、call、bind 指定环境对象“其执行上下文的环境对象”为,被指定的环境对象,无论是什么,即使是 null 或者 undefined;情景二:没有指定环境对象->1.作为 独立函数 执行“其执行上下文的环境对象”为 undefined;->2.作为 对象方法 执行“其执行上下文的环境对象”为 这个拥有它的对象;3.对象属性中的 this“其执行上下文的环境对象”为,全局执行上下文的环境对象 当前模块{},所以全局中 this 指向当前模块对象{};4.构造函数 和 原型方法中的 this构造函数中:“其执行上下文的环境对象”为,以构造函数名命名的新对象;原型方法中:“其执行上下文的环境对象”为,构造函数的原型对象;非严格模式下:1.全局上下文中的 this(同 严格模式)2.函数上下文中的 this情景一:apply、call、bind 指定环境对象(同 严格模式)情景二:没有指定环境对象->1.作为 独立函数 执行“其执行上下文的环境对象”为 global对象;->2.作为 对象方法 执行(同 严格模式)3.对象属性中的 this(同 严格模式)4.构造函数 和 原型方法中的 this构造函数中:(同 严格模式)原型方法中:(同 严格模式)*//*
可以看出,浏览器环境 和 Node环境中主要的不同就是,全局执行上下文的环境对象 浏览器中:全局执行上下文的环境对象 为 Window对象,在 非严格模式下,如果没有指定环境对象 或 环境对象为 null 或 undefined, this指向会转为 Window对象;Node中:全局执行上下文的环境对象 为 当前模块对象{},在 非严格模式下,如果没有指定环境对象 或 环境对象为 null 或 undefined, this指向会转为 global对象;*/

原创:转载注明出处,谢谢 :)

转载于:https://www.cnblogs.com/cnblogs-jcy/p/8909962.html

this指向 - 总结相关推荐

  1. idea中设置指向源代码Scala

    1.到官网下载scala源代码 点击如下链接下载源码:http://www.scala-lang.org/download/all.html 选择需要的版本点击进行下载,我选择的是2.11.8版本,如 ...

  2. 父类引用指向子类对象

    父类引用指向子类对象,如何访问子类的属性? 1.第一种办法最简单,强制类型转化为子类. 2.父类引用指向子类对象,由于当前引用为父类,只能访问父类的字段和方法,但是根据多态性可以访问子类的方法,在这个 ...

  3. Go 学习笔记(13)— 指针定义、指针特点、空指针、指针数组、指向指针的指针、指针作为函数入参

    1. 复合数据类型 Go 语言基本的复合数据类型有指针.数组.切片.字典.通道.结构和接口等.格式如下: * pointerType // 指针类型, [n]elementType // 数组类型, ...

  4. vs2003复制一个web窗体,没有更改指向同一个cs 文件,引发大问题

    今天我在原来的考试系统的出题模块中,input模块,因为增加的一个web窗体编译有问题,于是就复制了原来的启动项页面input,再改了名字为set1,然后在set1页面上删除了控件和代码,再把set1 ...

  5. 释放变量所指向的内存_C++动态内存分配(学习笔记:第6章 15)

    动态内存分配[1] 动态申请内存操作符 new new 类型名T(初始化参数列表) 功能: 在程序执行期间,申请用于存放T类型对象的内存空间,并依初值列表赋以初值. 结果值: 成功:T类型的指针,指向 ...

  6. java的对象是什么意思_Java中对象和对象引用的区别,引用、指向是什么意思

    Java的变量分为两大类:基本数据类型和引用数据类型. 其中基本类型变量有四类8种:byte short int long float double char boolean,除了8种基本数据类型变量 ...

  7. C++:将char*指针强制转换成一个指向结构体的指针

    在使用Socket与雷达进行通信采集数据时,会遇到"打包与解包"的问题,在打包和解包过程中,会涉及到结构体指针与字符指针间的强制转换.如下: 打包就是将包头与信息封装成一定大小的包 ...

  8. C指针8:二级指针(意思就是指向指针的指针)

    指针可以指向一份普通类型的数据,例如 int.double.char 等,以下简称一级指针: 也可以指向一份指针类型的数据,例如 int *.double *.char * 等.以下简称二级指针:即如 ...

  9. C指针5:字符串指针(指向字符串的指针)

    在C语言中没有特定的字符串类型,我们通常是将字符串放在一个字符数组中,字符数组实际上是一系列字符的集合,也就是字符串(String).在C语言中,没有专门的字符串变量,没有string类型,通常就用一 ...

  10. C指针4:数组指针(指向数组的指针)

    先明确两个概念:(1和2是两个完全不一样的东西) 1.数组指针:如果一个指针指向了数组(该数组就是普通定义的数组),我们就称它为数组指针(Array Pointer).(1强调的是指针) 2.指针数组 ...

最新文章

  1. esxi6.7虚拟机网卡连接第二个虚拟交换机_Linux云计算底层技术之网络虚拟化
  2. 自动驾驶中激光雷达如何检测障碍物?
  3. python-hashlib模块-加密
  4. ibatis insert mysql_iBATIS创建操作
  5. MySql学习之组合查询
  6. TOJ3649欧拉回路
  7. 玩转 Spring Boot 应用篇(序列号生成器服务实现)
  8. vs2010 破解版,试用版变正式版
  9. 蚂蚁金服技术90后:从艺术转投数学,还出版首本TensorFlow中文教材
  10. “爱玛”等不达标电动自行车下架
  11. STM32F103ZET6+红外温度传感器mlx90614芯片
  12. Unity导弹,射击
  13. yigo基础学习笔记3_数据迁移
  14. conver(array)
  15. 二叉排序树、AVL树、红黑树、B树、B+树、Hash树、
  16. 186_一文看懂压敏电阻和tvs的区别
  17. MySQL及达梦数据库数字金额转人民币大写
  18. 在后台处理请求返回的json字符串
  19. Issues:Frequency out of range: (expecting between 112.50Hz and 275.00Hz, measured 99.85Hz)
  20. linux虚拟机修改防火墙,vmware防火墙如何设置

热门文章

  1. 一个技术开发者经常访问的网站
  2. MySQL级联复制(A-B-C) —log-slave-updates = 1
  3. 网络资源(1) - Hadoop视频
  4. python3 解析html_Python3解析html高级操作
  5. tum数据集_数值预报尚能战否?来自数据驱动的挑战
  6. 苹果双卡双待是哪一款_等12 mini还是买苹果11?实体店老板给出了答案,很有道理!...
  7. linux netfilter路由表,Linux netfilter 学习笔记 之十四 netfilter模块会修改数据包关联的路由缓存吗...
  8. datetimepicker中文不生效_搜索引擎技术(二十)- elasticsearch - 中文分词器
  9. 三星android11推送,三星国行S10系列正式推送One UI 3正式版,基于安卓11打造
  10. winform如何实现将数据库数据加载到树上