匿名自执行函数

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">

	function alt(s)
	{
		document.write(s);
	}
	function show(){
		alert(chao.myfunc());
	}
	var chao = new Object();
	(function(_obj){
		_obj.myfunc = function(){
			return "这是 超 的命名空间";
		};
	})(chao);

</script>
</head>
	<input type="button" value="test" onclick="show()"/>
<body>
</body>
</html>

  由于函数是一个封闭的作用域范围,并且可以嵌套函数,所以可以使用这种匿名自执行函数来实现封装自己的所有函数和变量。

从而避免来自多个开发者的多个函数相互冲突,并且,他们位于同一个函数中所以可以相互应引用。

  由于外部无法引用函数内部的变量,因此在执行完后很快就会被释放,关键是这种机制不会污染全局对象。这同时也相当于定义了一个命名空间

来自不同的开发者的函数方法只位于自己的命名空间里,

  示例代码里,就相当于创建了一个 chao 的命名空间。

时间: 2024-11-11 19:43:45

匿名自执行函数的相关文章

为什么代码要写到匿名自执行函数中?

1. 为啥让你把代码写到匿名自执行函数中 // 目的是为了防止变量命名空间污染 // 1. 防止污染别的变量 // 2. 防止被别人污染 // 3. 表明这是一个独立的模块 // 原理:函数有作用域 2. 为什么把 window 传递到了匿名自执行函数中 // 1. 声明当前js文件模块的依赖项 // 2. 减少作用域查找范围,提高代码执行效率 ;(function (w, d, Vue, $) { // code here })(window, document, Vue, jquery) 原

匿名自执行函数报错

js 报错(intermediate value)(...) is not a function 2017-02-18 17:49 1497人阅读 评论(0) 收藏 举报 [javascript] view plain copy //通过函数构造器定义 function beverage_treat(){ } // 这里不用加分号 //通过函数表达式定义, 此时我们认为该函数是一个变量 var beverage_treat = function(){ }; // 这里一定要加分号,不然在后面紧跟

创建自执行函数表达式

首先贴一段这样的代码 //正确的代码var foo=function(){ //函数内容 }; foo(); 对于这段代码大家都很熟悉,创建一个函数表达式并且立即执行.接下来,我们试着去把这段代码简化,变成一个立即执行函数表达式. //错误的代码function(){ //函数内容 }() 这段代码与上面代码的区别就是把foo省略了,直接替换成function,但是很明显这样做是不行的,js会给我们报出一个错误. 为什么这样会报错呢?其实原因很简单,函数声明以function关键字开始,同时函数

js基础之javascript函数定义及种类-普通涵数-自执行函数-匿名函数

普通函数 1.不带参数 function fucname(){ alert("hello"); } funcname() 2.带参数 function funcname(arg){ alert("hello"); } funcname("Brin") 普通函数,自执行函数 1.不带参数 (function(){ alert(123); })() 2.带参数 (function(arg){ alert(123); })("Brin&quo

JavaScript中的匿名函数、立即执行函数和闭包

匿名函数是没有函数名的,不能单独使用: 立即执行函数是基于匿名函数实现的,也没有函数名,会在定义后立即执行: 闭包是有权访问另一个函数作用域中的变量的函数.匿名函数.立即执行函数只要满足 有权访问另一个函数作用域中的变量 这一个条件,就成了闭包. 匿名函数 匿名函数:没有函数名的函数 匿名函数不能单独定义与使用 function foo() { console.log('普通函数'); } // 去掉函数名 foo function () { // SyntaxError: Function s

基础-函数3(IIFE立即执行函数)

参考链接: http://benalman.com/news/2010/11/immediately-invoked-function-expression/#iife http://segmentfault.com/a/1190000003985390 IIFE是在后面进入模块编程看到的,对于它长成那个样子,原来也是和闭包那块经常一块出在面试题里的,让人容易脸盲||| 本文用于初识庐山面目,欢迎各路大侠吐槽~ IIFE-immediately invoked function expressi

javascript中的立即执行函数(function(){…})()

javascript中的立即执行函数(function(){…})() 深入理解javascript中的立即执行函数,立即执行函数也叫立即调用函数,通常它的写法是用(function(){…})()包住业务代码,使用jquery时比较常见. ( function(){…} )()和( function (){…} () )是两种javascript立即执行函数的常见写法,最初我以为是一个括号包裹匿名函数,再在后面加个括号调用函数,最后达到函数定义后立即执行的目的,后来发现加括号的原因并非如此.要

js中(function(){…})()立即执行函数写法理解

javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各型各色的写法也是对javascript语言特性更进一步的深入理解. ( function(){…} )()和( function (){…} () )是两种javascript立即执行函数的常见写法,最初我以为是一个括号包裹匿名函数,再在后面加个括号调用函数,最后达到函数定义后立即执行的目的,后来发现加括号的原因并非如此.要理解立即执行函数,需要先理解一些函数的基本概念.

学习js函数--自执行函数

我在写代码时候经常会在tpl的<script>里写类似的代码: $(function(){ alert("我好饿"); }); 刚开始的时候只知道写了它不需要调用,直接执行,就这样依葫芦画瓢,我写了很多代码.说道这,还要说说这货的加载顺序,如果把代码直接写到script标签里,当页面加载完这个script标签就会执行里边的代码了.如果在这代码里用到了未加载的dom或者调用了未加载的方法,是会报错的.言归正传,这个函数其实就是自执行函数,很多人会比较专业地称为"立即