在ECMAScript中,我们经常可以看到在函数中使用this关键字。而this指的是调用该方法的对象。如下代码:

 var person = new Object();person.name = 'wu';var name='wuxq';person.ShowInfo = function () {document.write(this.name);//输出wudocument.write('<br>');}function A() {document.write(this.name);//输出wuxq}person.ShowInfo();A();

可以看到这两个函数里面分别使用了this关键字。但是他们的输出时不一样的。由于ShowInfo是由person对象调用的,因此this指的是person对象。this.name等同于person.name.而函数A,其调用其实是这样的window.A(),因此可见this指的是window对象,而var name='wuxq' 其实也是这样声明的 var window.name='wuxq';因此这是的this.name等同于window.name;

this用法的代码:

function ShowInfo() { document.write(this.name)}var person1 = new Object();person1.name = 'wuxq1';person1.ShowInfo = ShowInfo;var person2 = new Object();person2.name = 'wuxq2';person2.ShowInfo = ShowInfo;person1.ShowInfo();person2.ShowInfo();

转载于:https://www.cnblogs.com/wuxiaoqian726/articles/1984914.html

JavaScript高级编程学习7——this关键字相关推荐

  1. javascript高级编程学习笔记(二)——继承

    2019独角兽企业重金招聘Python工程师标准>>> 写读书笔记的好处在于加深记忆,前一篇总结了编程中创建的对象的几种方式,以及常用的方式,这一篇总结实现继承的方式: 1.对象冒充 ...

  2. JavaScript高级编程学习6——Date

    ECMAScript和Java一样,是把日期存储为距离UTC格林尼治标准时间(1970年1月1日凌晨12点)的毫秒数(还会加上相应的时差).var date=new Date();这样是用当前的日期和 ...

  3. javascript高级编程学习

    1.6中你数据类型:undefined,null,bolean,number,string ,object 通常用typeof来判断数据类型: "undefined"如果值未定义 ...

  4. Javascript高级编程学习笔记(20)—— 创建对象

    由于今天有点事,加上对象原型链的东西有点多,所以今天这篇就讲一个小的知识点吧 也算为明天的对象继承做铺垫 工厂模式 虽然使用对象字面量来创建一个对象十分地便捷,但是这个方法有一个显著的缺点 那就是如果 ...

  5. JavaScript 高级编程(二)

    JavaScript 高级编程(二) BOM 一套操作浏览器的API. 常见对象 window: 代表整个浏览器窗口 注意: window是BOM中的一个对象, 并且是一个顶级的对象(全局) Navi ...

  6. JavaScript高级编程 III

    原文地址:http://www.onlamp.com/pub/a/onlamp/2007/11/20/advanced-javascript-iii.html JavaScript高级编程I:http ...

  7. 【C#8.0 and .NET Core 3.0 高级编程学习笔记】

    @C#8.0 and .NET Core 3.0 高级编程学习笔记 前言 为了能精细地完成对C#语言的学习,我决定选择一本书,精读它,理解它,记录它.我想选择什么书并不是最重要的,最重要的是持之以恒的 ...

  8. 嵌入式系统开发学习步骤(Linux高级编程学习顺序)

    2019独角兽企业重金招聘Python工程师标准>>> 嵌入式系统开发学习步骤(Linux高级编程学习顺序) 1.Linux 基础 安装Linux操作系统 Linux文件系统 Lin ...

  9. JavaScript高级程序设计学习笔记(三)

    分享一下第五章(引用类型)的笔记,内容比较多,我拆成了两部分,今天这部分是关于Object.Array.Date和RegExp类型的. 以下的笔记是书上一些我以前学习的时候,没有太重视的js基础知识, ...

最新文章

  1. Maya基础入门学习教程
  2. Spring Cloud云架构 - SSO单点登录之OAuth2.0登录流程(2)
  3. 目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU
  4. 【你知道HHTP各种状态代表什么意思吗?】
  5. SpringMVC+MyBatis+Redis开启二级缓存配置
  6. ITK:单相Chan和Vese密集域水平集分割
  7. css 如何让背景图片拉伸填充避免重复显示
  8. python常用魔术方法
  9. 开启admin$共享
  10. Instant Run 的操作影响到了代码,导致Android App启动闪退的问题
  11. 张宇八套卷(一)复盘
  12. windows 无法加载DLL “***.dll”:找不到指定的模块
  13. SEGGER RTT使用总结
  14. bcdedit删除引导_Bcdedit命令教程以及用于编辑Windows引导配置的示例
  15. SAP中复制创建采购申请的过程
  16. 独家专访京东区块链技术专家刘春伟:大厂BaaS扎堆,京东如何走C位?
  17. 也许有一天,你发觉日子特别的艰难,那可能是这次的收获将特别的巨大
  18. oracle19数据库对内存要求,在天堂 - 技术老男
  19. 1.6启动失败的解决办法
  20. 为什么诉讼融资会火?

热门文章

  1. @EnableScheduling和@Scheduled的使用(初级)
  2. emwin之基于某个事件或标志创建某个界面的一种方法
  3. 【转】 LINUX中IPTABLES和TC对端口的带宽限制 端口限速
  4. Android深度探索(卷1)HAL与驱动开发--读书笔记(第一章)
  5. 两种控制器的跳转与回跳
  6. LintCode: Binary Tree Inorder Traversal
  7. Xml解析之PULL解析 例1
  8. IOS设计模式学习(1)设计模式初窥
  9. Cadence Orcad 无法启动出现Capture.exe找不到cdn_sfl401as.dll问题
  10. setuptools的package_data问题