window和nodejs作用域区别(待续)
//这是在浏览器环境下,chrome下 var n =2 ;
var obj={
n:4,
fn1:(function(){
console.log("fn1->this ="+this); //这里立即执行时,this是window
console.log("fn1->this.n = "+this.n); //这里是2
this.n *=2; n = n*2; //这里的n是取下面没赋值的n,所以结果是nan,当变量在使用时还没赋值,但是下面有var语句包含这个变量,这时变量是undefiend
console.log("fn1->n = "+n); //nan
var n = 3; //这里n才赋值
return function() {
this.n*=2; //这里是在下面fn1()调用时时执行,所以这里的this是window
console.log("匿名函数里的this.n="+this.n); //
n *=3; //这里取外层作用域的3
console.log("匿名函数里的n="+n); //
}
}
)()
} var fn1 = obj.fn1;
console.log(obj.n); //
console.log(n); //
fn1();
console.log(n) //
console.log(obj.n); //
//node 环境下 var n =2 ;
var obj={
n:4,
fn1:(function(){
console.log("fn1->this ="+this); //这里的this是global对象
console.log("fn1->this.n = "+this.n); //global没有n,所以n是underfined
this.n *=2; //这里是nan,因为n是undefined,所以乘以2是nan n = n*2; //同理下面才给n赋值这里的n*2是nan
console.log("n=n*2,n is "+n);
var n = 3;
return function() {
this.n*=2;
console.log("匿名函数里的this.n="+this.n); //global没有n,所以这里是nan
n *=3;
console.log("匿名函数里的n="+n); //9 引用上面 var n=3 这里的3
}
}
)()
} var fn1 = obj.fn1;
console.log(obj.n); //4
console.log(n); //2
fn1();
console.log(n) //2
console.log(obj.n); //4
window和nodejs作用域区别(待续)的更多相关文章
- $(document).ready() 与 window.onload 之间的区别
1.执行时机 window.onload 是网页中所有的元素都加载到浏览器后才执行 $(document).ready() 是dom完全就续就可以调用 例如:如果给一副图片添加点击事件,window. ...
- window.location.href 和 window.location.replace 的区别
window.location.href 和 window.location.replace 的区别 1.window.location.href=“url”:改变url地址: 2.window. ...
- window下nodejs用nodemon启动koa2项目(用cmd启动不了,要用Git Bash Here 启动才可以)
window下nodejs用nodemon启动koa2项目(用cmd启动不了,要用Git Bash Here 启动才可以)nodemon --watch 'app/**/*' -e ts --exec ...
- jsp的4个作用域区别( pageScope、requestScope、sessionScope、applicationScope)
简单描述 page里的变量没法从index.jsp传递到test.jsp.只要页面跳转了,它们就不见了. request里的变量可以跨越forward前后的两页.但是只要刷新页面,它们就重新计算了. ...
- 前端node面试题之---对比JS和NodeJS的区别
区别: 1.JS运行在浏览器端,用于用户的交互效果,NodeJS运行在服务器端,用于服务器的操作,例如,Web服务器创建,数据库的操作,文件的操作等 2.JS运行在浏览器端,存在多个JS解释器,存在兼 ...
- javascript的window.ActiveXObject对象,区别浏览器的方法
(window.ActiveXObject)的作用,用来判断浏览器是否支持ActiveX控件,如果支持ActiveX控件,我们可以利用var xml=new ActiveXObject("M ...
- window.location.href和window.location.replace的区别
有3个html页面(.html, .html, .html). 进系统默认的是1.html ,当我进入2.html的时候, .html里面用window.location.replace(" ...
- JavaScript中,window.opener是什么?window.parent和window.opener有啥区别?
来自CSDN的问答: window.opener是什么啊? ++++++++++++++++++++++++++++++++++++++++++++++++++ 弹出本窗体的句柄 比如你想点一个按钮直 ...
- JS中 window.location 与window.location.href的区别
疑惑:window.location='url' 与window.lcoation.href='url'效果一样,都会跳转到新页面,区别在哪?查得的资料如下: 1:window.location是页 ...
随机推荐
- 使用支持向量机训练mnist数据
# encoding: utf-8 import numpy as np import matplotlib.pyplot as plt import cPickle import gzip clas ...
- 【HACK】破解APK并注入自己的代码
请不要去干坏事! 使用工具: APKTool 提醒:能够正常安装到手机上的APK都是带有签名的(不了解签名的可以百度),APK在破解重新打包后是已经不再拥有签名的,如果想要你破解后的APK能够正常运行 ...
- 虚拟化之vmware-截图解释
故障检测和主机网络隔离 代理会相互通信,并监控群集内各台主机的活跃度.默认情况下,此操作通过每秒交换一次检测信号来完成.如 果15 秒过去后仍未收到检测信号,而且 ping 不到该主机,则系统会声明该 ...
- BNUOJ 1006 Primary Arithmetic
Primary Arithmetic 来源:BNUOJ 1006http://www.bnuoj.com/v3/problem_show.php?pid=1006 当你在小学学习算数的时候,老师会教你 ...
- 【性能诊断】三、单功能场景的性能分析(RedGate Profiler)
上一篇我们简单的对客户前端和数据库后端的性能问题进行了定位,如果排除了这两块,问题基本就确定在应用服务器上.但是我们往往对应用服务器,或者说应用程序的性能最陌生,一旦出现性能问题往往有无所适从的感觉, ...
- Java中的定时器Timer
java.util.Timer是一个实用工具类,该类用来调度一个线程,使线程可以在将来某一时刻开始执行. Java的Timer类可以调度一个线程运行一次,或定期运行. java.util.TimerT ...
- VMware虚拟系统 bridged、NAT、host-only三种网络连接模式
目录 前言 bridged(桥接模式) NAT(网络地址转换模式) host-only(仅主机模式) 总结 前言 如果你想利用VMWare安装虚拟机,或想创建一个与网内其他机器相隔离的虚拟系统,进行特 ...
- Linux启动过程详解 (转)
启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬盘 ...
- C++日志操作开源函数库之Google-glog
今天想给我的C++项目找一个开源的日志类,用于记录系统日志,结果浪费了半个下午的时间.从网上搜索相关资料,找到以下几个备选方案: 1.log4cplus 下载地址:http://sourceforge ...
- nova分析(3)—— nova-api
nova-api是nova对外提供Restful API的服务,Horizon.novaclient等均通过该api与nova进行通信. nova其实对外提供了多个api服务,包括下面这些服务: no ...