settimeout 作用域问题
来源:互联网 发布:php程序源码 编辑:程序博客网 时间:2024/05/21 15:40
无意中看到以下代码:
第一段代码:
var a = 6;setTimeout(function () {alert(a);a = 666;}, 1000);a = 66;
输出为66
第二段代码:
var a = 6;setTimeout(function () {alert(a);var a = 666;}, 1000);a = 66;
输出为undefined
第三段代码:
var show = function(){ alert(this+" is all");}var Obj = function(){ this.show = function(){ alert(this+" is obj"); } this.time = function(){ var self = this; //setTimeout(function(){this.show();}, 2000);//window is all //setTimeout(function(){self.show();}, 2000);//Obj is obj //setTimeout("this.show()", 2000);//window is all //setTimeout("self.show()", 2000);//window is all //setTimeout(this.show, 2000);//window is obj //setTimeout(self.show, 2000);//window is obj }} var obj = new Obj(); obj.time();
setTimeout() 和 setInterval() 调用的代码或者函数是全局作用域的
看两段代码就能分析1和2的区别:
var scope="global";function t(){ console.log(scope); scope="local" console.log(scope);}t();
输出:
global
local
var scope="global";function t(){ console.log(scope); var scope="local" console.log(scope);}t();
输出:
undefined
local
这里为什么会输出undefined,因为上面代码相当于:
var scope="global";function t(){ var scope; console.log(scope); scope="local" console.log(scope);}t();
这个要看我下一篇转发的文章。
0 0
- settimeout 作用域问题
- settimeout的执行函数作用域问题
- setTimeout的作用域
- JavaScript中setTimeout的作用域以及this指向问题
- setTimeout的作用域以及this的指向问题
- JS中setTimeout的作用域以及this的指向问题
- 【javascript 技巧】谈谈setTimeout的作用域以及this的指向问题
- setTimeout(0) 的作用
- setTimeout使用之由"作用域"引发的血案
- settimeout(0) 的作用解析
- setTimeout为0的作用
- setTimeout传参数问题
- setTimeout传参数问题
- setTimeout 问题异步调用
- setTimeout传参数问题
- setTimeout闭包问题
- setTimeOut中的this问题
- setInterval()和setTimeout()的两种使用方式及作用域
- 2G-3G-4G网络结构演进过程
- 理解虚基类、虚函数与纯虚函数的概念
- 怎样远程登录局域网内其他计算机
- HQL中的内连接、左连接、右连接
- linux 0.11 任务调度schedule
- settimeout 作用域问题
- 摩托车继承自行车和机动车
- epoll处理
- 【双进程动规问题】NYOJ 61传纸条
- 数组中只出现1次的两个数字
- linux设备文件和普通文件
- 第十二周项目4-日期时间类
- 求最大公约数的两种方法
- 人脸数据库汇总