运行程序,解读this指向---case2
片段1
var anum = 666; function funcTest1(){ var b = anum * 2; var anum = 6; var c = anum / 2; console.log(b);//NAN,因为anum指向undefined console.log(c); } funcTest1();
片段2
//没进funcTest2 window.num = 11; var myObj = { num:13, funcTest2:function(){ this.num *= 23; return function(){ this.num *= 19; } } }; console.log(window.num + myObj.num);//11 + 13 = 24
window.num = 11; var myObj = { num:13, funcTest2:function(){ this.num *= 23; return function(){ this.num *= 19; } } }; myObj.funcTest2();//进funcTest2,this指向myObj,但没进return。 console.log(window.num + myObj.num);//11 + 13*23 = 310
window.num = 11; var myObj = { num:13, funcTest2:function(){ this.num *= 23; return function(){ this.num *= 19; } } }; myObj.funcTest2()();//先进funcTest2,this指向myObj,后进return,this指向window。 console.log(window.num + myObj.num);//11*19 + 13*23 = 508
window.num = 11; var myObj = { num:13, funcTest2:function(){ this.num *= 23; return function(){ this.num *= 19; } } }; myObj.funcTest2();//进funcTest2,this指向myObj,但没进return。 console.log(window.num + myObj.num);//11 + 13*23 = 310 myObj.funcTest2()();//先进funcTest2,this指向myObj,后进return,this指向window。 console.log(window.num + myObj.num);//11*19 + 13*23*23 = 7086
window.num = 11; var myObj = { num:13, funcTest2:function(){ this.num *= 23; return function(){ this.num *= 19; } } }; var tcal = myObj.funcTest2();//进funcTest2,this指向myObj,但没进return。 console.log(window.num + myObj.num);//11 + 13*23 = 310 tcal();//没进funcTest2,直接进return,this指向window。 console.log(window.num + myObj.num);//11*19 + 13*23 = 508
window.num = 11; var myObj = { num:13, funcTest2:function(){ this.num *= 23; return function(){ this.num *= 19; } } }; var cal = myObj.funcTest2; var tcal = cal();//进funcTest2,this指向window,但没进return。 console.log(window.num + myObj.num);//11*23 + 13 = 266 tcal();//没进funcTest2,直接进return,this指向window。 console.log(window.num + myObj.num);//11*23*19 + 13 = 4820
window.num = 11; var myObj = { num:13, funcTest2:function(){ this.num *= 23; return function(){ this.num *= 19; } } }; var cal = myObj.funcTest2; var tcal = cal(); myObj.funcTest2();//进两次funcTest2,this第1次指向window,第2次指向myObj,但没进return。 console.log(window.num + myObj.num);//11*23 + 13*23 = 552 tcal();//没进funcTest2,直接进return,this指向window。 console.log(window.num + myObj.num);//11*23*19 + 13*23 = 5106
运行程序,解读this指向---case2的更多相关文章
- 操作系统篇-hello world(免系统运行程序)
|| 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.前言 今天起开始分享关于操作系统的相关知识,本人也是菜鸟一个,正处于学习阶段,这整个操作系统篇也是我边学习边总结的一些结果,希 ...
- windows服务编写和“以管理员运行”程序的方法
本文将首先解释如何 创建 一个定期查询可用物理内存并将结果写入某个文本文件的服务.然后指导你完成生成,安装和实现服务的整个过程. 第一步:主函数和全局定义 首先,包含所需的头文件.例子要调用 Win3 ...
- python介绍,计算机核心基础,与运行程序有关的三大核心硬件,操作系统
python介绍,计算机核心基础,与运行程序有关的三大核心硬件,操作系统 引子 python是什么? 什么是编程语言?为何要有编程语言? 什么是编程?什么是程序?什么是进程?为何要编程? 计算机基础 ...
- CYPEESS USB3.0程序解读之---GPIO
CPRESS 官方给出的SDK1.1中(目前最新的SDK),提供了大量的例程供我们开发软件的时候作参考,就像STM32的开发一样提供了库一样,但是又不是库,仅仅是参考例程. 首先看一个简单一点的GPI ...
- Xcode 运行程序,左侧memory 不显示内存
运行程序后,xcode 不显示当前使用的内存情况,问题是打开了僵尸--enable zoombie Objects,关闭即可 打开 product--->SCheme-->EditSChe ...
- C# 管理员身份运行程序
在使用winform程序获取调用cmd命令提示符时,如果是win7以上的操作系统,会需要必须以管理员身份运行才会执行成功,否则无效果或提示错误. 比如在通过winform程序执行cmd命令时,某些情况 ...
- IntelliJ IDEA 配置运行程序
IntelliJ IDEA 对于Javaer开发来说还是很nice的,就是第一次用可能配置项有点生疏,这里就记录一下IntelliJ IDEA 配置运行程序. 1. 点击Edit Config... ...
- Usage: AddDimensionedImage imageFile outputFile eclipse 运行程序出错
关于这个在eclipse中运行java程序的错,首先确认你的jdk,jre是否完整,并且与你的eclipse的位数相同,当然我相信这个错误大家应该都会去检查到. 第二个关于addDimensioned ...
- [原创]Win7、Win8、Win10始终以管理员身份运行程序。
在Win7.Win8.Win10系统中,以管理员身份运行程序很麻烦,一般有以下几种方式: 1.在可执行程序或快捷方式上右键,以管理员身份运行: 2.在可执行程序或快捷方式上右键->属性-> ...
随机推荐
- MySQL— 索引
目录 一.索引 二.索引类型 三.索引种类 四.操作索引 五.创建索引的时机 六.命中索引 七.其它注意事项 八.LIMIT分页 九.执行计划 十.慢查询日志 一.索引 MySQL索引的建立对于MyS ...
- caffe添加自己编写的Python层
由于Python的灵活性,我们在caffe中添加自己定义的层时使用python层会更加方便,开发速速也会比C++更快,现在我就在这儿简单说一下如何在caffe中添加自定义的python层(使用的原网络 ...
- Linux mmc framework2:基本组件之mmc
1.前言 本文主要mmc组件的主要流程,在介绍的过程中,将详细说明和mmc相关的流程,涉及到其它组件的详细流程再在相关文章中说明. 2.主要数据结构和API TODO 3. 主要流程 3.1 mmc_ ...
- Delphi中的动态包,有详细建立包的步骤(答案很简单:因为包的功能强大)
为什么要使用包? 答案很简单:因为包的功能强大.设计期包(design-time package)简化了自定义组件的发布和安装:而运行期包(run-time package)则更是给传统的程序设计注入 ...
- CROSSUI桌面工具 分布加载模块(Distributed UI Module) 与 主模块Module 之间数据传输!
CROSSUI 基于 NW,如何在模Module 之间(主index.js and module1.js)传输数据? http://www.crossui.com/Forum/post577.htm ...
- zabbix系列(七)zabbix3.0添加对tcp连接数及状态的监控
原理: netstat -an|awk '/^tcp/{++S[$NF]}END{for(a in S) print a,S[a]}' TIME_WAIT 79 ESTABLISHED 6 LISTE ...
- cactiez v11添加对mysql数据库、apache系统进行监控
cactiez默认已经安装了mysql监控的模板,需要我们对服务器端和被监控的mysql客户端进行配置才能生效. 被监控的Mysql客户端: 如cactiez的IP为192.168.0.8 #添加一个 ...
- Python-JS中的事件详解
目录 fdf!! fefd 一.JS中的事件二.JS中的事件分类: 1.事件初级: 2.事件参数 Event 3.鼠标事件 4.键盘事件 *** 5.表单事件 *** 6.文档事件 * 7.图片事件 ...
- Android 自定义View二(深入了解自定义属性attrs.xml)
1.为什么要自定义属性 要使用属性,首先这个属性应该存在,所以如果我们要使用自己的属性,必须要先把他定义出来才能使用.但我们平时在写布局文件的时候好像没有自己定义属性,但我们照样可以用很多属性,这是为 ...
- Node.js随手笔记
参考文章:https://blog.csdn.net/IronKee/article/details/83780857 安装nvm的方法: 如果已经单独安装了node,建议卸载,然后继续向下看. 直接 ...