在JavaScript中,this不是固定不变的,它的指向取决于上下文环境,一般的,认为this指向使用它时所在的对象。主要有以下几类指向:

  • 在方法中,this 表示该方法所属的对象。
  • 如果单独使用,this 表示全局对象。
  • 在函数中,this 表示全局对象。
  • 在函数中,在严格模式下,this 是未定义的(undefined)。
  • 在事件中,this 表示接收事件的元素。
  • 类似 call() 和 apply() 方法可以将 this 引用到任何对象。

this代表的是 执行这个this代码的环境对象 ;this在脚本中代表的是window全局对象

eg.1

此处打印的便是karen

eg.2

eg.3

eg.4

为什么要打印this?

this代表了一个对象 常常在项目中我们要给一个对象操作成员

fn()  ->window    调用者是window

obj.fn()->obj

obj.xx.xx2()->obj.xx

(function(){})()->window

fn()()->window

fn()[1]()->fn()返回的数组

在js程序中无论多么复杂的程序 this只需要看离(嵌套级别)最近的function的这个单词的调用者

面试题    

eg

 

javascript中对this的理解相关推荐

  1. javascript中闭包的一些理解

    闭包是javascript中绕不开的话题,关于闭包的一些概念和应用,这方面资料比较多,在此就不再赘述.众所周知,闭包的一个作用就是 让一些变量始终保持在内存中 ,在此我用一些实际代码对这句话作进一步的 ...

  2. JavaScript中事件循环的理解 Event Loop

    为了解决单线程运行阻塞问题,JavaScript用到了计算机系统的一种运行机制,这种机制就叫做事件循环(Event Loop) 事件循环(Event Loop) 在JavaScript中,所有的任务都 ...

  3. 对于JavaScript中this关键字的理解

    这是我第二遍学this了,第一遍学的懵懵的.this指哪里都是凭我一个男人的直觉然后控制台输出看看对不对. 刚查了书.博客.视频.理解差不多了.毕竟菜鸡me: 一.首先介绍下什么是this this是 ...

  4. 谈谈我对Javascript中This对象的理解

    this 指针的隐式赋值 this总是指向调用该方法的对象: 在事件中,this指向触发这个事件的对象,特殊的是,IE中的attachEvent中的this总是指向全局对象Window: 显示操纵 t ...

  5. javascript中回调函数的理解和应用

    一. 什么是回调函数? 被作为实参传入另一函数,并在该外部函数内被调用,用以来完成某些任务的函数,称为回调函数. function f1(fn) {let a =1;console.log(a,'a' ...

  6. 谈谈JavaScript中function多重理解

    JavaScript 中的 function 有多重意义.它可能是一个构造器(constructor),承担起对象模板的作用: 可能是对象的方法(method),负责向对象发送消息.还可能是函数,没错 ...

  7. html $符号的作用,javascript 中$符号是代表什么意思!

    $符号在php中是表示变量的特征字符, 在js中它也有很多作用, 一般我们用来命名一个函数名称,获取id的 1. 首先可以用来表示变量, 比如变量 var s='asdsd'或var $s='asda ...

  8. 深入理解javascript中的立即执行函数(function(){…})()

    2019独角兽企业重金招聘Python工程师标准>>> javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各 ...

  9. javascript中 (function(){})();如何理解?

    javascript中 (function(){})();如何理解? javascript中: (function(){})()是匿名函数,主要利用函数内的变量作用域,避免产生全局变量,影响整体页面环 ...

  10. JavaScript中的call、apply、bind深入理解

    一.函数的三种角色 首先要先了解在函数本身会有一些自己的属性,比如: length:形参的个数: name:函数名: prototype:类的原型,在原型上定义的方法都是当前这个类的实例的公有方法: ...

最新文章

  1. linux c语言 malloc动态分配指针,C语言malloc函数为一维,二维,三维数组分配空间...
  2. 【深度学习】最新「深度学习社区发现」综述论文,174篇文献概述六大类方法(含Github资源)...
  3. 【CentOS Linux 7】实验4【Shell编程】
  4. 查看数据库 MySQL 的版本信息的命令语句
  5. mui 获取地图当前位置和经纬度
  6. 线程的3种实现方式并深入源码简单分析实现原理
  7. java查漏补缺(基础篇)
  8. 拓端tecdat:R语言RStan MCMC:NUTS采样算法用LASSO 构建贝叶斯线性回归模型分析职业声望数据
  9. 一起写框架-控制反转(Ioc)概述(二)
  10. 如何在msdn下载纯净文件
  11. 计算机机房日常巡检内容,IT机房巡检工作流程及标准.doc
  12. sql server 2012 安装与下载
  13. RGB/YUV/YIQ 颜色空间
  14. 【Paper-Attack】A Targeted Universal Attack on Graph Convolutional Network
  15. Linux ACLs
  16. uni-app——storage的使用(Storage、StorageSync)
  17. 机器学习 python
  18. linux kernle 同步原语
  19. 在线升级:OTA升级的原理和实现方式
  20. 航天安网高清视频无损压缩解决方案—IDC机房监控系统案例

热门文章

  1. js 金额转中文大写格式
  2. Sublime 初始化
  3. SLAM中本质矩阵E,基础矩阵F,单应矩阵H总结
  4. HTML中的表单标签
  5. Git 基础知识 - 查看提交历史记录
  6. ARX——一种开源的数据匿名软件的介绍
  7. STM32F103RCT6芯片架构
  8. java 汇率换算_汇率转换示例代码
  9. win11+github pages+hexo+aurora主题搭建博客
  10. material文本框与按钮边框旋转效果实现登录页面