乘风原创程序

  • 匿名函数、立即执行函数、构造函数和普通函数使用方式的区别
  • 2020/8/10 10:22:09
  • 匿名函数

    匿名函数顾名思义就是没有名字的函数

    这就是个匿名函数

    function (){}
    

    这种函数由于没有名字,不能通过一个函数名引用他,所以不能像构造函数和普通函数一样多次调用。
    如果将函数赋值给变量也可以实现多次调用。

    //将匿名函数赋值给变量可以利用变量实现多次调用
    var test = function (){};
    

    匿名函数通常用在将函数作为参数传递、将函数作为返回值返回的地方,由于该函数没有函数名只能将整个函数体当做参数或返回值。
    该函数通常用于事件绑定。
    该函数的返回值可以手动 return 任意类型的值。

    立即执行函数

    立即执行函数顾名思义就是声明后立即执行的函数

    这就是立即执行函数

    //声明和调用放在一起
    (function(){})();
    

    这种函数也属于匿名函数的一种,因为立即执行函数不能多次调用,给他一个函数名没有太大的用处,所以通常是匿名函数,该函数的返回值可以手动 return 任意类型的值。
    这种函数可以看做匿名函数的另外一种用法。
    立即执行函数与其他函数的调用方式略有区别。
    该函数主要用于,需要执行一个操作但是这种操作只执行一次并且不想让函数内的变量保存或造成全局污染,立即执行函数是一个不错的选择。
    该函数与匿名函数的区别就是立即执行函数声明后立即执行,且只执行一次,也不能将函数作为值赋值给变量实现多次调用。

    构造函数

    构造函数主要是用来创建对象的函数

    function Person(name,age){
    	this.name = name;
    	this.age = age;
    }
    //构造函数的调用方式
    var me = new Person('Me',30);
    

    该函数与其他函数的最明显的区别就是要用 new 关键字调用,用 new 关键字调用的时候,函数返回一个对象因此达到创建对象的效果。
    该函数的返回值如果手动return的是基本类型的值会忽略不会返回,如果return的是引用类型的值则返回该值,也就是说构造函数只返回引用类型的值。
    构造函数一般用于工厂化创建对象、作为类使用等地方。

    普通函数

    普通函数是指通过function关键字生命的有函数名且 不用new直接用函数名调用的函数

    function sum(a,b){
    	console.log( a+b);
    }
    //普通函数的调用方式
    sum(2,3);
    

    这种函数由于有函数名可以多次调用,也可以作为值赋值给变量也可以作为参数传递,该函数可以利用函数名实现作为参数或返回值。
    该函数的返回值可以是任意类型的值,普通函数可以采用构造函数、立即执行函数、匿名函数的使用方式。
    也就是说构造函数、匿名函数、立即执行函数这些用法,是在普通函数的基础上发展的一些用法
    该函数与匿名函数的区别就是有函数名,可以通过函数名调用。
    该函数与立即执行函数的区别是能够多次调用执行,也可以赋值给变量等操作。
    该函数通常用于封装一个单独功能的代码,也就是说该函数可以独立完成一个操作或功能,提高代码的复用性。
    在提高代码复用行方面立即执行函数和匿名函数表现的不是很明显。

    总结

    1. 本文旨在说明匿名函数、立即执行函数、构造函数以及普通函数的使用方式的区别,之所以有区别是因为在不同需求的地方采用一些函数的其他用法更加方便或能够实现普通调用方式所实现不了的功能。也可以看做是普通函数的其他功能的专业化或函数功能的分工
    2. 匿名函数、立即执行函数与构造函数 、函数的区别在于没有函数名,且不能多次调用
    3. 构造函数与另外三类函数的区别在于 用new关键字调用且只返回引用类型的值

    本文地址:https://blog.csdn.net/qq_40850839/article/details/107874309