zoukankan      html  css  js  c++  java
  • Javascript学习笔记:3种定义函数的方式

    ①使用函数声明语法定义函数

    1 function sum(num1,num2){
    2   return num1+num2;  
    3 }

    ②使用函数表达式定义函数

    1 var sum=function(num1,num2){
    2   return num1+num2;  
    3 }

    ③使用Function构造函数定义函数

    1 var sum=new Function('num1','num2','return num1+num2');

    三种定义函数的方式,其中第二和第三种从技术角度讲都属于函数表达式的方式,但是不推荐使用第三种即使用Function构造函数的方式,因为这种方式性能低于前两种方式。不管以哪种方式定义函数,函数都是Function类型的实例,而且都与其他引用类型一样拥有属性和方法。这三种定义函数的方式唯一不等价的地方是:第二种和第三种方式定义的函数不存在函数声明提升,第一种方式定义的函数存在函数声明提升(所谓函数声明提升,也就是解析器在向执行环境中加载数据时,会率先读取函数声明,并使其在任何代码之前可以访问),其他方面都是等价的。

    1 sum(1,2);//3
    2 
    3 function sum(num1,num2){
    4  return num1+num2;
    5 }

    使用函数声明语法定义函数的方式存在函数声明提升,所以sum函数可以正常执行。

    1 sum(1,2);//TypeError: sum is not a function
    2 
    3 var sum=function(num1,num2){
    4   return num1+num2;  
    5 }

     使用函数表达式定义行数的方式不存在函数声明提升,所以会报出异常。

    1 sum(1,2);//TypeError:sum is not a function
    2 
    3 var sum=new Function('num1','num2','return num1+num2');

    使用Function构造函数定义函数的方式不存在函数声明提升,所以会报出异常。

  • 相关阅读:
    MAC下配置PHP环境详解, Apache,MySQL数据库,vim
    xib和storyboard小谈,
    iOS中block运用
    IOS-UIDynamic
    ProtocolBuffers-3 For Objective C (2)-进阶
    ProtocolBuffers-3 For Objective C (1)-简单的使用
    12. UITextField
    11. KVC And KVO
    10.OC中retainCount返回值不准的原因
    9. 了解 Cocoa-百度百科
  • 原文地址:https://www.cnblogs.com/PolarisSky/p/5270185.html
Copyright © 2011-2022 走看看