javascript匿名函数实例分析

 更新时间:2014年11月18日 16:12:40   投稿:shichen2014  
这篇文章主要介绍了javascript匿名函数,以实例形式详细分析了javascript匿名函数的定义、用法及注意事项,具有很好的学习借鉴价值,需要的朋友可以参考下

本文实例讲述了javascript匿名函数的用法。分享给大家供大家参考。具体分析如下:

摘要:

本文讲解的是javascript最基础也是最重要的东西--函数,之所以写这篇文章,是因为面试的时候问到了,也算是温故而知新了。

先上个例子,如果你看懂了,说明你已经理解了本文要讲的。

复制代码 代码如下:
var f = (function() {

    function f() {return 10;}

    return f();

    function f() {return 20;}

    var f = 30;

})();

console.log(f);

javascript高级程序设计中这样描述函数--可以封装任意多条语句,而且可以在任何地方、任何时候调用执行。之前介绍过了strict mode,严格模式对函数有一些限制:

① 不能把函数命名为eval或arguments
② 不能把参数命名为eval或arguments
③ 不能出现两个命名参数同名的情况

发生以上情况就会导致语法错误,代码无法执行。

函数定义

函数定义分为三种

1、构造函数

复制代码 代码如下:
var fun = new Funciton();

2、普通定义

复制代码 代码如下:
function fun() {}

3、函数式定义

复制代码 代码如下:
var fun = function() {};

这三种方式都可以定义函数fun。

参数

函数不介意传递进来多少个参数,也不在乎传进来的参数是什么数据类型。即便你定义的函数只接收两个参数,在调用这个函数时也未必一定要传递两个参数。可以传递一个、三个甚至不传递参数。原因是参数在内部是用一个数组来表示的。在函数体内可以通过arguments对象来访问参数数组,举个例子

复制代码 代码如下:
function sayHi() {

    alert("Hello " + arguments[0] + "," + arguments[1]);

}

通过访问arguments对象的length属性来获知有多少个参数。函数的length会返回函数的参数个数。

注意:所有参数传递的都是值,不可能通过引用传递参数。

函数不能重载,只能重写

如果定义了两个名字相同的函数,则该名字只属于最后定义的函数,举个例子:

复制代码 代码如下:

function add(num) {

    return num + 100;

}

function add(num) {

    return num + 200;

}

var result = add(100) //300

注意:函数在执行完return语句之后停止并立即退出。

函数种类

函数分为两种一种是有名函数,另一种是匿名函数。例如下面的有名函数

复制代码 代码如下:
function fun() {

}

如果调用的话,只需要fun()就可以。

匿名函数,顾名思义就是没有函数名。例如

function() {}

函数调用是通过函数名来调用,匿名函数怎么调用呢?一种就是将匿名函数赋给一个变量,让这个变量充当函数名。另一种就是用()来调用,例如下面三种方法

1、(function() {return;}());

2、(function() {return;})();

3、function() {return;}();

例子:

复制代码 代码如下:

(function(x, y) {

    ​alert(x + y);

})(2,3);

//alert(5)


2和3将会作为参数传递给x和y

下面就来讲讲最上面的例子,这个例子里面涉及到闭包,后面会说

首先定义一个变量f,然后赋值一个匿名函数,这里呢需要注意一点函数里所有变量的定义都会被前置,所以匿名函数里的执行顺序是

复制代码 代码如下:

var f = (function() {

    ​var f = 30;

    function f() {return 10;}

    function f() {return 20;}

    return f();

})();


外面的变量f和里面的变量f不在同一个作用域内(闭包),所以互不影响。​因为函数不能重载,所以外面变量f=(function f() {return 20;})();,所以最终输出的是20。

希望本文所述对大家的javascript程序设计有所帮助。

相关文章

  • TypeScript泛型的使用详细介绍

    TypeScript泛型的使用详细介绍

    在TypeScript中,泛型是一种创建可复用代码组件的工具。这种组件不只能被一种类型使用,而是能被多种类型复用。类似于参数的作用,泛型是一种用以增强类(classes)、类型(types)和接口(interfaces)能力的非常可靠的手段
    2022-09-09
  • 用JS编写选项卡效果

    用JS编写选项卡效果

    这篇文章主要为大家详细介绍了用JS编写选项卡效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • JavaScript 高性能数组去重的方法

    JavaScript 高性能数组去重的方法

    这篇文章主要介绍了JavaScript 高性能数组去重的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-09-09
  • Javascript中的神器——Promise

    Javascript中的神器——Promise

    本文主要介绍了Javascript中Promise的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • 用js实现用户注册功能

    用js实现用户注册功能

    这篇文章主要为大家详细介绍了用js实现用户注册的简洁版,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 详解ES6 中的Object.assign()的用法实例代码

    详解ES6 中的Object.assign()的用法实例代码

    这篇文章主要介绍了ES6 Object.assign()的用法及用途,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • js中设置元素class的三种方法小结

    js中设置元素class的三种方法小结

    列举所有的方式,看看各浏览器的支持差异。方便用js动态设置元素css的代码。需要的朋友可以参考下。
    2011-08-08
  • js常见遍历操作小结

    js常见遍历操作小结

    这篇文章主要介绍了js常见遍历操作,结合实例形式分析了javascript for循环、for in、for each、each及map遍历简单操作技巧,需要的朋友可以参考下
    2019-06-06
  • JavaScript编写简单的计算器

    JavaScript编写简单的计算器

    这篇文章主要介绍了JavaScript如何编写简单的计算器,功能很简单,可以实现加减乘除功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • Webpack5正式发布,有哪些新特性

    Webpack5正式发布,有哪些新特性

    这篇文章主要介绍了Webpack5正式发布,有哪些新特性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10

最新评论