片段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的更多相关文章

  1. 操作系统篇-hello world(免系统运行程序)

     || 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.前言     今天起开始分享关于操作系统的相关知识,本人也是菜鸟一个,正处于学习阶段,这整个操作系统篇也是我边学习边总结的一些结果,希 ...

  2. windows服务编写和“以管理员运行”程序的方法

    本文将首先解释如何 创建 一个定期查询可用物理内存并将结果写入某个文本文件的服务.然后指导你完成生成,安装和实现服务的整个过程. 第一步:主函数和全局定义 首先,包含所需的头文件.例子要调用 Win3 ...

  3. python介绍,计算机核心基础,与运行程序有关的三大核心硬件,操作系统

    python介绍,计算机核心基础,与运行程序有关的三大核心硬件,操作系统 引子 python是什么? 什么是编程语言?为何要有编程语言? 什么是编程?什么是程序?什么是进程?为何要编程? 计算机基础 ...

  4. CYPEESS USB3.0程序解读之---GPIO

    CPRESS 官方给出的SDK1.1中(目前最新的SDK),提供了大量的例程供我们开发软件的时候作参考,就像STM32的开发一样提供了库一样,但是又不是库,仅仅是参考例程. 首先看一个简单一点的GPI ...

  5. Xcode 运行程序,左侧memory 不显示内存

    运行程序后,xcode 不显示当前使用的内存情况,问题是打开了僵尸--enable zoombie Objects,关闭即可 打开 product--->SCheme-->EditSChe ...

  6. C# 管理员身份运行程序

    在使用winform程序获取调用cmd命令提示符时,如果是win7以上的操作系统,会需要必须以管理员身份运行才会执行成功,否则无效果或提示错误. 比如在通过winform程序执行cmd命令时,某些情况 ...

  7. IntelliJ IDEA 配置运行程序

    IntelliJ IDEA 对于Javaer开发来说还是很nice的,就是第一次用可能配置项有点生疏,这里就记录一下IntelliJ IDEA 配置运行程序. 1. 点击Edit Config... ...

  8. Usage: AddDimensionedImage imageFile outputFile eclipse 运行程序出错

    关于这个在eclipse中运行java程序的错,首先确认你的jdk,jre是否完整,并且与你的eclipse的位数相同,当然我相信这个错误大家应该都会去检查到. 第二个关于addDimensioned ...

  9. [原创]Win7、Win8、Win10始终以管理员身份运行程序。

    在Win7.Win8.Win10系统中,以管理员身份运行程序很麻烦,一般有以下几种方式: 1.在可执行程序或快捷方式上右键,以管理员身份运行: 2.在可执行程序或快捷方式上右键->属性-> ...

随机推荐

  1. 【TensorFlow】tf.nn.softmax_cross_entropy_with_logits的用法

    在计算loss的时候,最常见的一句话就是 tf.nn.softmax_cross_entropy_with_logits ,那么它到底是怎么做的呢? 首先明确一点,loss是代价值,也就是我们要最小化 ...

  2. 求web前端面试题库及答案

    1.对WEB标准以及W3C的理解与认识 标签闭合.标签小写.不乱嵌套.提高搜索机器人搜索几率.使用外 链css和js脚本.结构行为表现的分离.文件下载与页面速度更快.内容能被更多的用户所访问.内容能被 ...

  3. python f-string

    文章目录 1. 主要内容 1.1. 旧时代的格式化字符串 1.1.1. Option #1: %-formatting 1.1.2. 怎样使用 %-formatting 1.1.3. 为什么 %-fo ...

  4. 转载CSDN博客步骤

    在参考“如何快速转载CSDN中的博客”后,由于自己不懂html以及markdown相关知识,所以花了一些时间来弄明白怎么转载博客,以下为转载CSDN博客步骤和一些知识小笔记. 参考博客原址:http: ...

  5. 关于素数:求不超过n的素数,素数的判定(Miller Rabin 测试)

    关于素数的基本介绍请参考百度百科here和维基百科here的介绍 首先介绍几条关于素数的基本定理: 定理1:如果n不是素数,则n至少有一个( 1, sqrt(n) ]范围内的的因子 定理2:如果n不是 ...

  6. WordCloud词云包的安装

    1,下载 https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud 2,安装 (window环境安装) 找的下载文件的路径 安装 pip instal ...

  7. 每天一个linux命令:scp命令

    scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度.当你服务器 ...

  8. X-Forwarded-For 的一些理解

    X-Forwarded-For 是一个 HTTP 扩展头部, 主要是为了让 Web 服务器获取访问用户的真实 IP 地址(其实这个真实未必是真实的,后面会说到). 那为什么 Web 服务器只有通过 X ...

  9. LeetCode(43):字符串相乘

    Medium! 题目描述: 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = &quo ...

  10. LeetCode(7):颠倒整数

    Easy! 题目描述:给定一个范围为 32 位 int 的整数,将其颠倒. 例1: 输入:132 输出:321 例2: 输入:-123 输出:-321 例3: 输入:120 输出:21 注意:假设我们 ...