function google(){
var kevin = "hello";
john(kevin);
}
function john(arg){
var mark = arg;
function yahoo(mark){
alert(mark);
}
}
现在,当我打电话给我的功能google()
为什么它没有在雅虎呼叫警报。传递内部函数内部对象
function google(){
var kevin = "hello";
john(kevin);
}
function john(arg){
var mark = arg;
function yahoo(mark){
alert(mark);
}
}
现在,当我打电话给我的功能google()
为什么它没有在雅虎呼叫警报。传递内部函数内部对象
你不叫yahoo
。你需要这样做:
function john(arg){
var mark = arg;
function yahoo(mark){
alert(mark);
}
yahoo(mark); // <-------
}
你也可以重构你的代码做这样的事情:
function john(arg){
var mark = arg;
(function yahoo(){
alert(mark);
})();
}
因为john
内没有yahoo
功能的呼叫。
function john(arg) {
var mark = arg;
function yahoo(mark) {
alert(mark);
}
yahoo(mark); // <-- call
}
你们定义功能yahoo
,但从来没有真正调用它。试试这个:
function google(){
var kevin = "hello";
john(kevin);
}
function john(arg){
var mark = arg;
yahoo(mark);
function yahoo(mark){
alert(mark);
}
}
我需要一个变量标记,或者我可以直接传递参数。 – Kevin
如果你愿意,你可以通过arg。 – Lloyd
@Lloyd您的语法在重构的案例中无效。自执行功能应该用圆括号包装。 – VisioN