请看这一段代码:
[code="js"]
$(document).ready(function(){
$("input").blur(function(){
var functionName = $(this).attr("class");
new Function(functionName+"(1)")();
});
});
function a1(v){
alert("a1" + v);
}
[/code]
页面上的一个input框,鼠标移开时弹出提示框,这里用的是new Function动态调用函数,这个代码正常运行,
当我把a1放入ready里面时,如下代码:
[code="js"]
$(document).ready(function(){
$("input").blur(function(){
var functionName = $(this).attr("class");
new Function(functionName+"(1)")();
});
function a1(v){
alert("a1" + v);
}
});
[/code]
这时代码无效,提示找不到a1这个函数。
但是把函数写成
[code="js"]
a1 = function(v){
alert("a1" + v);
}
[/code]
放在那里都可以用,我想知道这是为什么?a1 = function().....这种形式的作用域比 function a1.......这种形式作用域大吗?