欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

如何在 JavaScript 中从外部访问可立即执行的匿名函数中的变量和函数?

最编程 2024-03-11 17:56:55
...

参考帖子https://ask.****.net/questions/1014743

如何才能在外部访问到立即执行匿名函数中的变量和函数?

如何才能在外部调用fn1()函数和fn2()函数

如何才能在外部访问到age变量

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaScript中立即执行的匿名函数</title>
<script type="text/javascript">
var hometown = '江西省赣州市于都县';
console.log(hometown);
(function (){
	console.log('我是一个匿名函数' + hometown);
})();

(function (){
	var age = 24;
	console.log('hello,我是一个匿名函数');
	function fn1(){
		console.log('我是fn1函数');
	}
	fn1();
	function fn2(){
		console.log('我是fn2函数');
	}
	fn2();
})();
//涉及到闭包的知识
//立即执行匿名函数中的变量和函数怎么访问?
//如何才能在外部调用fn1()函数和fn2()函数
// fn1(); //报错Uncaught ReferenceError: fn1 is not defined
// fn2();
//如何才能在外部访问到age变量
// console.log(age); //报错Uncaught ReferenceError: age is not defined
</script>
<script type="text/javascript">
console.log('我的家乡在' + hometown);
</script>

</head>
<body style="background-color: #CCE8CF;">
	<h3 style="color: #cd1636;">
	JavaScript中立即执行的匿名函数
	</h3>
</body>
</html>

以上问题是如何解决的呢?看下面

<!DOCTYPE html>
<html>

<head>
<meta charset="UTF-8">
<title>JavaScript中立即执行的匿名函数</title>
<script type="text/javascript">
var hometown = '江西省赣州市于都县';
console.log(hometown);
(function() {
    console.log('我是一个匿名函数' + hometown);
})();

(function(){
    var exports={};
    var age = 24;
    console.log('hello,我是一个匿名函数');

    function fn1() {
        console.log('我是fn1函数');
    }
    fn1();

    function fn2() {
        console.log('我是fn2函数');
    }
    fn2();
    
    exports.efn1=function(){
        return fn1();
    }
    
    exports.efn2=function(){
        return fn2();
    }
    
    exports.eage = age;
    
    window.exports=exports;
})();
//涉及到闭包的知识
//立即执行匿名函数中的变量和函数怎么访问?
//如何才能在外部调用fn1()函数和fn2()函数
console.log('************************');
exports.efn1(); //结果为我是fn1函数
exports.efn2(); //结果为我是fn2函数
// fn1(); //报错Uncaught ReferenceError: fn1 is not defined
// fn2();
//如何才能在外部访问到age变量
// console.log(age); //报错Uncaught ReferenceError: age is not defined
console.log('************************');
console.log(exports.eage); //结果为24
</script>
<script type="text/javascript">
            console.log('我的家乡在' + hometown);
</script>
</head>
<body style="background-color: #CCE8CF;">
	<h3 style="color: #cd1636;">JavaScript中立即执行的匿名函数</h3>
</body>
</html>

 

推荐阅读