为什么第一个有效,第二个无效?全局和私有变量声明
Why does the first one work and the second one not work? Global and Private variable declaration
第一个。这个有效,我有var start=new Date();函数内部。
function instance(){
var start = new Date();
document.getElementById("foo").innerHTML = start.getTime();
window.setTimeout(instance, 1000);
}
function start(){
window.setTimeout(instance, 1000);
}
这是第二个不起作用的。var start=new Date()在函数之外。
var start = new Date();
function instance(){
document.getElementById("foo").innerHTML = start.getTime();
window.setTimeout(instance, 1000);
}
function start(){
window.setTimeout(instance, 1000);
}
即使第二个是全局变量,而不是私有变量,它不应该仍然有效吗?为什么一些全局变量有效,而另一些则无效?
在javascript中,函数是变量,只是函数形式。因此,在第二个例子中,变量start
和函数start
冲突。例如,如果将function start(){
更改为function init(){
,它会起作用。
这允许您定义等功能
var foo = function() {
...
}
第一个之所以有效,是因为您有一个局部变量start
和一个全局函数start
,所以没有冲突。
var start = new Date();
function instance(){
document.getElementById("foo").innerHTML = start.getTime();
window.setTimeout(instance, 1000);
}
function init(){
window.setTimeout(instance, 1000);
}
相关文章:
- 使用同一对象中的其他变量声明变量
- 如何将变量声明为全局变量
- 如何将变量声明为全局变量?用case foreach?Javascript
- 理解bootstrap.js变量声明
- 将 Javascript 变量声明为 PHP 形式
- 单个逗号分隔的变量声明和多个声明之间的区别是什么
- Do变量声明初始化函数
- Javascript变量声明:什么是“;var myVariable={}”;
- javascript中不同类型的变量声明
- 为什么在循环的Javascript中包含变量声明
- for 循环中必需的变量声明
- JavaScript 中的变量声明
- 在 Javascript 变量声明中使用逗号
- 你能在变量声明中添加条件吗?
- JavaScript 全局变量声明
- 节点.js变量声明和作用域
- 具有多个逗号分隔值的变量声明是什么意思(例如 var a = b,c,d;)
- 移动图像 ..JavaScript 将变量声明为字符串
- 让 javascript 将(默认情况下)未声明的变量声明到当前本地范围(基于首次使用)而不是全局范围
- 循环中的变量声明