js中的匿名函数自执行

随笔,java中因为有修饰符的存在,那就有private类的存在,js不一样,没有修饰词一说,因此为了防止全局变量的污染,js中就出现了匿名函数,直接上code,看到的人可以自己体会;

(function () {    console.log("aaa");})();(function (a) {    console.log(a);})("aaa");

上面是2种写法,作用是完全相同的,不过有时候需要把全局的参数带进去的时候就可以直接采用带参的写法,这样写的另一个目的是函数可以自执行(其实并不是自执行,也是函数的调用而已);

下面我来、们拆开来看看,大家都知道在js中如何定义一个function吧,没错就这样

var say=function(){   alert("HelloWorld");};

那如何让它执行呢?这样:

say();

ok 这个时候我们的界面上会alert出来一个HelloWorld

那我们换一个方式看看 其实函数的调用可以理解为  变量();变量就是我们自己去定义的say ,那我们可以这样来写一个函数

  ()(); 再把我们的function放进去  (function(){})();展开就是:

  (function(){    alert("HelloWorld");   })();

其实只是把函数匿名了,但是我们还是调用了 并不能说是自执行,函数一定是要调用了。
时间: 2024-10-09 17:59:49

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

js中如何在一个函数里面执行另一个函数

1.js中如何在函数a里面执行函数b function a(参数c){ b(); } function b(参数c){ } ps:在需要传参的情况下,函数a里面的参数c同时可以传到函数b里面. 2.如何20秒后执行另一个函数 function a(){ setTimeout(b,20000)}function b(){ alert("20秒以后了哦")} 3.什么是回调函数 回调就是一个函数的调用过程.回调,回调,就是回头调用的意思.函数a的事先干完,回头再调用函数b. 函数a有一个参

js中的匿名函数与必包

之前就看过关于js中匿名函数与闭包的文章,始终是不太明白,今天看<JavaScript高级编程第二版>时又看到了这方面的介绍,终于弄懂了. 所谓匿名函数就是没有名字的函数,也叫lamda函数,这不是js所有的,其它很多高级编程语言都有匿名函数.正常情况下函数应该这样定义: 1 function fun1(){ 2 alert("这是一个正常的函数"); 3 } 这就是函数的声明与实现.而匿名函数是这样定义的: 1 var fun1 = function(){ 2 alert

JS中的匿名函数

整理自:http://www.cnblogs.com/playerlife/archive/2012/10/17/2727683.html 一.什么是匿名函数? 在Javascript定义一个函数一般有如下三种方式: ①:函数关键字(function)语句:function fnMethodName(x) { alert(x); } ②:函数字面量(Function Literals)var fnMethodName = function (x) { alert(x); } ③:Function

node.js中的匿名函数, 回调函数和嵌套函数

定义一个函数相信大家已经很熟悉了, 在javascript里的函数也是非常重要的, 使用率非常高, 有几种函数不是很好理解 一, 匿名函数 var remove = function(num1) { return num1; } var fun = remove(5); console.log(fun); 这里定义的这个函数没有设置函数名, 在使用的时候要使用变量调用这个函数. 最后的输出结果: 5 二, 回调函数, 传递的参数可以定义成任意的对象, 而在这里, 其中的一个参数就是一个函数 fu

jQuery源码,匿名函数自执行

jQuery框架的首尾是这样写的()(), 1 (function(window){//这个window是个入参,随便起个名字都行 2 //这里面全都是js代码 3 })(window)//这个括号里的window不能变 实际上上面代码中后面的那个window是传入的js中的window对象,前面是也是变量名,只不过也叫window罢了.这种()()方式叫做匿名函数自执行. 上面的代码完全可以写成下面这样: 1 (function(w){ 2 //这里面全都是js代码 3 w.$=w.jQuer

JS中关于把函数作为另一函数的参数的几点小总结

//JS中关于把函数作为函数的参数来传递的问题的小总结//第一,最简单的形式无参函数,直接形式函数的函数名放到括号中,再在执行部分这个函数即可.//当然调用时要穿另一个真正的定义好的函数/*function test1(Func){Func();}function test2(){alert("我是test2");}test1(test2);*/ //第二种,带参数的普通调用法.跟第一种唯一的区别就是在定义主函数的执行语句里调用参数函数时该把参数加上/*function test1(F

匿名函数自执行原理和instanceof运算符执行原理

今天收到RSS订阅中有一篇<Javascript – Arraylike的7种实现>,看第一种实现方式是,瞬间被!function(){}()这种匿名函数自执行方式给亮瞎了眼睛.这种写法绝对是装逼神器,代码如下: 1 !function () { 2 //通过闭包实现 3 var List = function () { 4 var list = [], 5 self = { 6 constructor: List, 7 //如果希望更像原生一点,将length定义为属性,那么length则需

underscore.js中的节流函数debounce及trottle

函数节流   throttle and debounce的相关总结及想法 一开始函数节流的使用场景是:放止一个按钮多次点击多次触发一个功能函数,所以做了一个clearTimeout setTimeout函数 clearTimeout(cancelTimer); cancelTimer =setTimeout(function(){ switchControl.switchAciontFactory(view, conf); },300) 代码的意思就不做多说了,实际上我无意间实现了一个debou

JavaScript中的匿名函数及函数的闭包以及作用域

1. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85