对于下面的函数doStuff,是否可以调用sayHello(函数dostuff外),即使它与内部函数同名?
var sayHello = function(){
alert("Called from outside the function");
}
function doStuff(){
sayHello();
function sayHello(){
alert("Called from inside the function. How can I call the sayHello function that is outside the scope of doStuff?");
}
}
doStuff();
在上面的Javascript代码中,函数sayHello(这是2个函数的名称)是从函数内部调用的,而不是在函数内部调用。
这里是jsFiddle:http://jsfiddle.net/5MSTU/
答案 0 :(得分:3)
如果外部函数是全局函数,则可以将其作为window
对象的成员进行定位。
window.sayHello();
否则,您需要使用不同的名称。 JavaScript允许您隐藏变量,因此与外部变量同名的内部变量有效地禁止访问外部变量。
答案 1 :(得分:-1)
- 更新以删除此处的错误代码 -
您可以预先为其添加别名。但我不知道这有多大用处。
var sayHello = function(){
alert("Called from outside the function");
};
var aliasForSayHello = sayHello;
function doStuff() {
function sayHello(){
alert("Called from inside the function. How can I call the sayHello function that is outside the scope of doStuff?");
aliasForSayHello();
}
sayHello();
}
doStuff();