片段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. winform程序生成条形码并且并且保存到本地文件中。

    今天公司让做一个输入数字.字母生成条形码并且可以以图片格式保存到本地.当看到这个需求时候感觉很搞笑,明明可以用文本框搞定的东西非得做个程序.哎,寄人篱下,不多说了,这就是养兵千日用兵一时. 我在网上找 ...

  2. JSON的理解

    官方解释: JSON的全称是”JavaScript Object Notation”,单单从字面上的理解就是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式. 理解: ...

  3. 函数前加static与不加static的区别

    1:加了static后表示该函数失去了全局可见性,只在该函数所在的文件作用域内可见 2:当函数声明为static以后,编译器在该目标编译单元内只含有该函数的入口地址,没有函数名,其它编译单元便不能通过 ...

  4. python学习之argparse模块

    python学习之argparse模块 一.简介: argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块.argparse模块的作用是用于解析命令行 ...

  5. gpio_request 原形代码【转】

    转自:http://blog.csdn.net/maopig/article/details/7428561 其原型为 int gpio_request(unsigned gpio, const ch ...

  6. [转]Apache Commons IO入门教程

    Apache Commons IO是Apache基金会创建并维护的Java函数库.它提供了许多类使得开发者的常见任务变得简单,同时减少重复(boiler-plate)代码,这些代码可能遍布于每个独立的 ...

  7. 解读使用Daisy-chain(菊花链)方式筛选一定范围内素数的代码

    go version go1.11 windows/amd64 本文为解读 参考链接1 中的 菊花链 一节 的示例程序,此程序和 参考链接2 中代码有些类似:前者有范围,后者是无限循环.清楚了 参考链 ...

  8. 随机生成三个数(break用法)

  9. hdu5358 推公式+在一个区间内的尺取+枚举法

    尺取+枚举,推出公式以后就是一个枚举加尺取 但是这题的尺取不是对一个值尺取,而是在一个区间内,所以固定左边界,尺取右边界即可 #include<bits/stdc++.h> #define ...

  10. SG 大法(Sprague-Grundy函数)

    SG函数的定义: g(x) = mex ( sg(y) |y是x的后继结点 ) 其中mex(x)(x是一个自然是集合)函数是x关于自然数集合的补集中的最小值,比如x={0,1,2,4,6} 则mex( ...