在写定时器时很容易搞混,所以记下防止忘记。
双引号中的作用域不捕捉局部变量,不用双引号包着的是捕捉局部作用域
var a = function()
{
alert(1111)
}
function abc()
{
var a= function ()
{
alert(2222)
}
setTimeout("a()",3000)//
setTimeout(a,3000)//
}
abc()
想用双引号的写法,就要把函数放在全局环境中。
当然还可以用匿名函数的写法
setTimeout(function(){alert(2222)},3000)//
如果是没有双引号的,又写了括号
var a= function ()
{
alert(2222)
}
//这样导致直接执行并且只指向一次
setTimeout(a(),3000)