方案一:将私有函数return到全局
//方案一:return 私有函数到全局可以访问
function a(){
function b(){
window.console.log("启动函数b")
}
function c(){
window.console.log("启动函数c")
}
return b;
}
function d(){
//当return以后可以访问到a函数里面的私有函数b()
window.console.log(a()); //返回值有私有函数b而没有c,如果没有return的话就返回undefined
//对a()函数进行调用
a()();
// // let f = a();
// // f();
}
d();
方案二:把函数当做参数传递到私有函数的父级函数中,在私有函数传入到这个参数中执行
//方案二:把函数作为参数放到那个私有函数的父级函数中
function a1(callback){
//callback 就是函数d1
function b1(){
window.console.log("启动函数b1")
}
function c1(){
window.console.log("启动函数c1")
}
//在将b1传递到函数d1中,那么d1就可以运行a1()的私有函数
callback(b1);
}
function d1(a){
a();//b1也启动
}
a1(d1);
3.实例代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
</body>
<script>
//一个函数怎么调用另外一个私有函数
//function c()怎么调用function a()里面的子函数
// function a(){
// function b(){
// }
// }
// function c(){
// }
//方案一:return 私有函数到全局可以访问
function a(){
function b(){
window.console.log("启动函数b")
}
function c(){
window.console.log("启动函数c")
}
return b;
}
function d(){
//当return以后可以访问到a函数里面的私有函数b()
window.console.log(a()); //返回值有私有函数b而没有c,如果没有return的话就返回undefined
//对a()函数进行调用
a()();
// // let f = a();
// // f();
}
d();
//方案二:把函数作为参数放到那个私有函数的父级函数中
function a1(callback){
//callback 就是函数d1
function b1(){
window.console.log("启动函数b1")
}
function c1(){
window.console.log("启动函数c1")
}
//在将b1传递到函数d1中,那么d1就可以运行a1()的私有函数
callback(b1);
}
function d1(a){
a();//b1也启动
}
a1(d1);
</script>
</html>