运行程序,解读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.在可执行程序或快捷方式上右键->属性-> ...
随机推荐
- java 多线程一
java 多线程一 java 多线程二 java 多线程三 java 多线程四 java 多线程实现的几种方式: 1.extends Thread 2.implements Runnable 3.im ...
- spring初识
Spring是一个开源框架,它是为了解决企业应用开发的复杂性而创建的.Spring的用途不仅限于服务器端的开发.从简单性.可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益. Sp ...
- 基于Apache的阿里云部署Node.js服务器(Windows环境)
1 前言 由于nodejs项目对方开放了多个端口,而且阿里云上的Apache服务器(windows)已经挂载了网站,此时需要把此项目也挂上去,网上查询资料,方法略少,基本是基于nginx版本的. 2 ...
- 用java实现邮件发送验证码
java实现邮件发送验证码 建议不要用qq邮箱,我使用qq邮箱直接一直给我报530错误,我一直认为我代码写的有错误或者POP3/SMTP服务没弄好.所以建议注册个别的邮箱,我就申请了个网易163邮箱瞬 ...
- [工具/PC]计算机中丢失libiconv-2.dll,丢失libintl-8.dll,无法定位程序输入点libiconv于动态链接库libiconv-2.dll上问题解决方法
CodeBlocks 1. 背景,为了学习C语言,在win系统上下载了codeBlock,先简单介绍下:Code::Blocks 是一个开放源码的全功能的跨平台C/C++集成开发环境. Code::B ...
- TestNG测试方法
@Test(enabled = false)有助于禁用此测试用例. 分组测试是TestNG中的一个新的创新功能,使用<groups>标记在testng.xml文件中指定分组. 它可以在&l ...
- Linux VMware tools安装步骤
Linux VMware tools安装步骤: 1.安装环境介绍 #虚拟机版本:VMware-workstation-full-10 #linux分发版本:CentOS-6.4-i386-LiveCD ...
- confusion_matrix(混淆矩阵)
作者:十岁的小男孩 凡心所向,素履可往 目录 监督学习—混淆矩阵 是什么?有什么用?怎么用? 非监督学习—匹配矩阵 混淆矩阵 矩阵每一列代表预测值,每一行代表的是实际的类别.这个名字来源于它可以非常容 ...
- PHP对Url中的汉字进行编码和解码
有的新手朋友们对于url编码解码这个概念,或许有点陌生.但是如果这么说,当我们在浏览各大网页时,可能发现有的url里有一些特殊符号比如#号,&号,_号或者汉字等等,那么为了符合url的规范,存 ...
- 接口隔离原则(Interface Segregation Principle, ISP)
使用多个专门的接口,而不使用单一的总接口 接口隔离有两种定义: Clients should not be forced to depend upon interfaces that they don ...