Edu*_*uca 32 javascript nested-function
我有以下代码:
function initValidation()
{
// irrelevant code here
function validate(_block){
// code here
}
}
Run Code Online (Sandbox Code Playgroud)
有什么办法可以在validate()函数外面调用initValidation()函数吗?我试过调用validate()但我认为它只在父函数中可见.
Esa*_*ija 99
function initValidation()
{
// irrelevant code here
function validate(_block){
console.log( "test", _block );
}
initValidation.validate = validate;
}
initValidation();
initValidation.validate( "hello" );
//test helloRun Code Online (Sandbox Code Playgroud)
AmG*_*tes 17
希望你正在寻找这样的东西
function initValidation()
{
// irrelevant code here
this.validate = function(_block){
// code here
}
}
var fCall = new initValidation()
fCall.validate(param);
Run Code Online (Sandbox Code Playgroud)
这会奏效.
希望这可以解决您的问题.
你可以validate从内部打电话initValidation.像这样.
function initValidation()
{
// irrelevant code here
function validate(_block){
// code here
}
return validate(someVar);
}
Run Code Online (Sandbox Code Playgroud)
validateinitValidation因其范围而在任何外部都不可见.
编辑:这是我对解决方案的建议.
(function() {
function validate(_block){
// code here
}
function initValidation()
{
// irrelevant code here
return validate(someVar);
}
function otherFunctions() {
// ...
}
// initValidation = function
}());
// initValidation = undefined
Run Code Online (Sandbox Code Playgroud)
您的所有函数都将隐藏在函数包装器之外的任何内容中,但都可以看到彼此.