最近看了许多JavaScript源代码,发现this经常出现,于是对this这个非常特殊的关键词标识符进行总结。

  题外话:

  1、当函数被调用时,一个activation record【过程活动记录 -- 一种数据结构】被创建,

     这个record包涵信息:函数在哪调用,函数怎么调用的,参数等等,

     record的一个属性就是this,指向函数执行期间的this对象。

  2、函数在被调用时都会自动取得两个特殊变量,this和arguments 

  

  this在具体情况下的分析:

  1、在全局上下文,this指向全局对象。

       

  2、在函数内部时,this由函数怎么调用来确定。

   (1)作为对象方法的调用

       

    也可以这样写

     

   (2)作为构造函数的调用

       

    在构造函数(函数用new调用)中,this指向要被constructed的新对象。  即this指向实例化对象

  3、apply调用

     apply()是函数对象的方法,其作用是改变函数的调用对象,它的第一个参数 表示改变后的调用的函数对象,即this指的就是第一个参数。

       

     apply()参数为空时,默认调用全局对象,可以看到,运行结果为 "Yori",证明this指向全局对象。

     apply()参数为b时,,可以看到,运行结果为 "bentos",证明this指向对象b。

    

    

  

  

  

转载于:https://www.cnblogs.com/wuyongyu/p/5756626.html

JavaScript中的this用法相关推荐

  1. javascript 中 console 的用法

    javascript 中 console 的用法 视频 https://www.bilibili.com/video/BV1g7411L751?from=search&seid=1567656 ...

  2. JavaScript中window.open用法实例详解

    本文较为详细的分析了JavaScript中window.open用法.分享给大家供大家参考.具体如下: 复制代码 代码如下: <script LANGUAGE="javascript& ...

  3. javascript 中this 的用法:

    javascript 中this 的用法: 1.<div οnclick="// 可以在里面使用this">division element</div> t ...

  4. 关于JavaScript中typeof的用法

    一.typeof的作用 在JavaScript中,变量未经声明就使用,系统是会报错的.但是,typeof却是js中有且仅有的一个特例. typeof的作用就是用来区分数据类型的,下面先说说typeof ...

  5. javascript中call的用法总结

    javascript中call的用法总结 1.使用call方法调用函数并且指定上下文的'this' function greet(){console.log(this.name+",age= ...

  6. javascript 中innerHTML的用法

    javascript 中innerHTML的用法 语法 Object.innerHTML = "HTML";//设置其内容 var html = Object.innerHTML; ...

  7. JavaScript中splice的用法

    JavaScript中的splice主要用来对JS中的数组进行操作,包括删除,添加,替换等,原来的数组会被改变: 删除: array.splice(index,num),返回值为删除内容,array为 ...

  8. JavaScript中 with的用法

    文章是本人大三期间的学习笔记,一些论断取自书籍和网上博客,碍于当时的技术水平有一些写得不够好的地方,可以在评论处理智讨论~ 说起js中的with关键字,很多小伙伴们的第一印象可能就是with关键字的作 ...

  9. JavaScript中typeof的用法

    JavaScript中typeof知多少? typeof运算符介 绍: typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型. 它返回值是一个字符串,该字符串说明运算数的类型. 你 ...

  10. javascript中reduce的用法

    文章目录 一.reduce基本语法 二.reduce常用场景 1. 求和 2. 数据拼接 三.实际项目中使用示例 1. 模拟Redux中的compose方法 1.1. 简单写法 1.2 利用reduc ...

最新文章

  1. ubuntu su进入root权限
  2. 107.网络服务质量包括哪些(QoS)
  3. 《岸上的波妞》观后感
  4. 【ArcGIS遇上Python】Python使用栅格数据
  5. Eclipse中启动tomcat报错java.lang.OutOfMemoryError: PermGen space的解决方法
  6. html段落前的空格,HTML空格:空格前后
  7. 动态规划——小A点菜(洛谷 P1164)
  8. 去除eclipse打开后不断update的问题
  9. lua OOP实现对象的链式调用
  10. 使用 anacoda 安装scrapy
  11. 如何为SQL Server2008添加登录账户并配置权限
  12. 新手android中ListView实现音乐列表
  13. linux源代码分析和阅读工具比较
  14. kali系统下libtorrent的安装编译
  15. psd 直接导入unity
  16. 新媒体运营教程:名字都没起好,凭什么让用户关注你?
  17. 中国汽车市场的“底层”骗局
  18. 使用CAD镜像和修剪命令绘制图形
  19. Alice和Bob的故事---非对称加密
  20. 跨境电商东南亚平台Shopee、Lazada到底怎么样?如何高效补单?

热门文章

  1. Altair HW FEKO+WinProp 2020中文版
  2. springboot配置spring.profiles.active多环境支持
  3. Spring+SpringMVC+MyBatis集成(SSM)
  4. 用python生成词云wordcloud
  5. js map、filter、forEach
  6. 百度的一个Ajax跨域方法 JavaScript是没有域的限制
  7. 数据库正常运行,突然变慢的解决思路
  8. android -------- NDK 入门指南
  9. window编程_消息分类
  10. js中用到的正则表达式