本文内容 引入 匿名函数 闭包 变量作用域 函数外部访问函数内部的局部变量 用闭包实现私有成员 引入 闭包是用匿名函数来实现。闭包就是一个受到保护的变量空间,由内嵌函数生成。“保护变量”的思想在几乎所有的编程语言中都能看到。 先看下 JavaScript 作用域: JavaScript 具有函数级的作用域。这意味着,不能在函数外部访问定义在函数内部的变量。 JavaScript 的作用域又是词法性质的(lexically scoped)。这意味着,函数运行在...
1.匿名函数概述 关于匿名函数的第一次认识还是在jquery源码里,打开jQuery首先看到的是 代码如下: (function( window, undefined ) {.......................})(window); 这就是一个匿名函数,红色为参数,匿名函数的作用是创建一块封闭区域,外面不能够访问里面的变量和方法。 既然不能访问,那怎么能调用jquery?这是因为jquery的匿名函数有这样两句话(蓝色字): 代码如下: (function( window, undefined ) { // Define a l...
js中常常定义一个函数用做临时的命名空间,在这个命名空间内定义的变量都不会污染到全局命名空间(防止局部变量与全局变量冲突)。 代码如下: function mymodule(){ //模块代码 } mymodule(); 可以简写为: 代码如下: (function(){ //mymodule()函数重写为匿名的函数表达式 //模块代码 }( )); //结束函数定义并立即调用它 或者: 代码如下: (function(){ })(); 这种定义匿名函数并立即调用(自调用匿名函数)的写法已经非常常见...
javascript匿名函数,就是说个函数没有名字,下面先列出测试代码 代码如下: /* * 一般常见函数是这样 */ function debug(data) { console.log(data); } 但有的函数,它却偏偏写成了这样 代码如下: (function(x, y) { debug(x + y); }) 上面就是所说的匿名函数了 代码如下: var fun = null; (function() { var test = function(x ,y ) { debug(x +y); } fun =test; })(); 这个时候你在浏览器的控制台输入fun ,你会发现它打印...
输出11 //【2】 还可声明匿名函数立即使用 alert(function (a, b) { return a + b } (10, 2)); //直接声明一个匿名函数function (a, b) { return a + b },然后直接使用function (a, b) { return a + b } (10, 2)。连指向匿名函数function (a, b) { return a + b }的变量f1都不用了。这里输出12 //【3】 没有参数的匿名函数 var f2 = function () { alert("你好") }; f2(); //这里输出“你好” var f3 = function () { return...
Javascript中的自执行匿名函数 格式:(function(){ //代码 })(); 解释:这是相当优雅的代码(如果你首次看见可能会一头雾水:)),包围函数(function(){})的第一对括号向脚本返回未命名的函数,随后一对空括号立即执行返回的未命名函数,括号内为匿名函数的参数。 来个带参数的例子:(function(arg){ alert(arg+100); })(20); // 这个例子返回120。 重要用途:可以用它创建命名空间,只要把自己所有的代码都写在这个特殊的函...
1、匿名函数 函数是JavaScript中最灵活的一种对象,这里只是讲解其匿名函数的用途。匿名函数:就是没有函数名的函数。 1.1 函数的定义,首先简单介绍一下函数的定义,大致可分为三种方式 第一种:这也是最常规的一种代码如下: function double(x){return 2 * x; }第二种:这种方法使用了Function构造函数,把参数列表和函数体都作为字符串,很不方便,不建议使用。代码如下: var double = new Function(x, return 2 * x;);第三种...
本文实例讲述了javascript匿名函数的用法。分享给大家供大家参考。具体分析如下: 摘要: 本文讲解的是javascript最基础也是最重要的东西--函数,之所以写这篇文章,是因为面试的时候问到了,也算是温故而知新了。 先上个例子,如果你看懂了,说明你已经理解了本文要讲的。代码如下:var f = (function() {function f() {return 10;}return f();function f() {return 20;}var f = 30; })(); console.log(f); javascript高级程序设计...
本文实例讲述了JavaScript匿名函数用法。分享给大家供大家参考。具体如下: 一、定义一个函数 在JavaScript中,可以通过“函数声明”和“函数表达式”来定义一个函数,比如 1、通过“函数声明”来定义一个函数function t1(){}2、通过“函数表达式”来定义一个函数t2 = function(){}但是两种方式定义函数,效果是不同的 t1是函数声明,‘词法分析时,AO.t1 = function(){},-------------在‘词法分析阶段就发挥作用 t2是赋值操作,‘...
迷惑了一会儿不同JS库的封装后,终于有了点头绪。大致就是:代码如下: 创建一个自调用匿名函数,设计参数window,并传入window对象。而这个过程的目的则是,代码如下: 使得自身的代码不会被其他代码污染,同时也可以不污染其他代码。jQuery 封装 于是找了个早期版本的jQuery,版本号是1.7.1里面的封装代码大致是下面这样的代码如下: (function( window, undefined ) { var jQuery = (function() {console.log(hello);}); window.jQu...
本文实例讲述了JavaScript中匿名函数用法。分享给大家供大家参考。具体分析如下: JS中可以不用给函数名称,而是在使用时直接通过function把函数体赋值给相关的事件或者变量。 下面的JS代码给按钮设定了一个onclick事件,使用了匿名函数var anonbutton = document.getElementById("anonbutton"); anonbutton.onclick = function() {alert("anonymous function called."); }希望本文所述对大家的javascript程序设计有所帮助。
匿名函数:没有名字的函数; 闭包:可访问一个函数作用域里的变量的函数; 一 匿名函数// 普通函数function box(){ // 函数名是box;return 'Lee'; }box(); // =>Lee; 调用函数; // 匿名函数function(){ // 匿名函数,会报错;return 'Lee';} // 通过表达式自我执行(function(name){console.log(name); // =>Lee;})("Lee"); // "()"表示执行函数,并且可以传参; // ...
本文通过示例给大家介绍javascript的闭包,原型,和匿名函数,具体详情请看下文。一 、关于闭包理解闭包 需要的知识1.变量的作用域例1:var n =99; //建立函数外的全局变量 function readA(){alert(n); //读取全局变量 }readA(); //执行此函数例2:function readB(){var c = 9;function readC(){console.log(c); //ok c可见}return readC; } alert(c); //error c is not defined.note: 函数内部声明变量c时,一定要加上 var,否则 c会成...
下面给大家介绍javascript函数 函数的基本语法是:function functionName(arg0,arg1,...,argN) {statements }下面是个示例:function str(name,age){document.write("hello my name is " + name + ". and i am " + age + " years old."); } str(" oliver",23); //hello my name is oliver. and i am 23 years old.另外,任何函数在任何时候都可以通过return 语句后跟要返回的值来实现返回值。如:function sum(num1,num2){return n...
匿名函数 函数是JavaScript中最灵活的一种对象,这里只是讲解其匿名函数的用途。 匿名函数:就是没有函数名的函数。 函数的定义,首先简单介绍一下函数的定义,大致可分为三种方式 第一种:这也是最常规的一种 function double(x){return 2 * x; }第二种:这种方法使用了Function构造函数,把参数列表和函数体都作为字符串,很不方便,不建议使用。var double = new Function('x', 'return 2 * x;');第三种:var double = functi...