var a= checkin("不合格,重新输入")
return false
那么a的值就为false了
可以的。所有函数在执行的时候,都会生成一个变量对象:
变量对象相当于一个栈,栈的第一个元素是函数当前的作用域的变量,下一个元素就是包含该函数的作用域(如果存在)。最后,到全局环境的时候,会在栈的结尾加上几个全局对象:window、Math、 Date 等 javascript原生对象。
当在函数调用变量时,将会在变量对象中循环搜索是否存在该变量,逐次搜索直到最后的全局对象。当搜索的层次越深,访问变量的效率越低。
修改下,刚没仔细看,其实内部function声明的那个t函数和外部var声明的那个匿名函数不是同一个函数,var声明出来一块匿名函数的作用域,然后在这个独立的作用域里,再用function声明一个普通的函数而已。两个t是不同的命名空间下不同的函数而已。