Javascript 如何从外部函数调用嵌套函数

Javascript 如何从外部函数调用嵌套函数,javascript,Javascript,我有多个“蝙蝠侠”实例,需要调用“蝙蝠侠”中的嵌套函数,从!“蝙蝠侠”之外的另一个功能 大概是这样的: var a = new batman('a'); var b = new batman('b'); var c = new batman('c'); robin(); function batman(str){ function hello(){ console.log("hello world! Called from: "+str); } retu

我有多个“蝙蝠侠”实例,需要调用“蝙蝠侠”中的嵌套函数,从!“蝙蝠侠”之外的另一个功能

大概是这样的:

var a = new batman('a');
var b = new batman('b');
var c = new batman('c');
robin();

function batman(str){
    function hello(){
        console.log("hello world! Called from: "+str);
    }
    return {
        hello : hello
    };
}

function robin(){
    a.hello();
}
var a=新蝙蝠侠();
var b=新蝙蝠侠();
var c=新蝙蝠侠();
罗宾();
函数蝙蝠侠(){
函数hello(){
log(“你好,世界!”);
}
}
函数robin(){
a、 你好;

}
hello
对于每个调用
batman
的上下文来说都是完全私有的。您不能从任何其他地方调用它,除非您以某种方式使其可用,例如通过调用
batman
通过
new
将其指定给您正在创建的对象上的属性:

function batman(){
    this.hello = function() {
        console.log("hello world!");
    };
}
例如:

var a=新蝙蝠侠();
//var b=新蝙蝠侠();
//var c=新蝙蝠侠();
罗宾();
函数蝙蝠侠(){
this.hello=function(){
log(“你好,世界!”);
};
}
函数robin(){
a、 你好;

}
有很多不错的js模式,你可以找到如何编写好的js代码,你可以像这样对代码进行MIDI:

var a = new batman('a');
var b = new batman('b');
var c = new batman('c');
robin();

function batman(str){
    function hello(){
        console.log("hello world! Called from: "+str);
    }
    return {
        hello : hello
    };
}

function robin(){
    a.hello();
}


P.S:在这种模式下,基于您的代码,
新的
是不必要的。

您不能。hello不存在于外部函数之外。您可能希望将其添加到蝙蝠侠的原型上,然后可以从其实例中访问它。您无法立即访问。您需要通过prototype或this导出。可能是