zoukankan      html  css  js  c++  java
  • JavaScript世界的一等公民

    http://www.cnblogs.com/ciangcic/p/3526957.html

    简介
    在很多传统语言(C/C++/Java/C#等)中,函数都是作为一个二等公民存在,你只能用语言的关键字声明一个函数然后调用它,如果需要把函数作为参数传给另一个函数,或是赋值给一个本地变量,又或是作为返回值,就需要通过函数指针(function pointer)、代理(delegate)等特殊的方式周折一番。
    而在JavaScript世界中函数却是一等公民,它不仅拥有一切传统函数的使用方式(声明和调用),而且可以做到像简单值一样赋值、传参、返回,这样的函数也称之为第一级函数(First-class Function)。不仅如此,JavaScript中的函数还充当了类的构造函数的作用,同时又是一个Function类的实例(instance)。这样的多重身份让JavaScript的函数变得非常重要。
    一、JavaScript函数入门级
    JavaScript函数像一般语言一样也是遵循先声明后使用的原则,函数名只能包含字母、数字、下划线或$,且不能以数字开头。函数常见的声明方式有以下两种:1 // 直接声明函数myfunc
    2 function myfunc(/* arguments */) {
    3 }
    4  
    5 // 把匿名函数赋值给本地变量myfunc
    6 var myfunc = function(/* arguments */) {
    7 }

    注意,上面两种函数声明方式存在细微的差别:第一种方式在声明时就是一个命名的函数,无论是声明在调用之前、调用之后,甚至是不会执行到的位置(例如return语句之后或是永远不会为真的分支里),都在整个作用域可访问;第二种方式是通过把匿名函数赋值给变量的方式,严格意义上说这不是一个函数的声明(function declaration)而是一个函数表达式(function expression),在赋值之前这个函数不能被任何代码访问到,也就是说这个赋值必须在调用之前完成,否则调用时会出现错误:"TypeError: undefined is not a function"。例如:1 myfunc1(); // 能够正常调用,因为myfunc1采用直接声明的方式
    2  
    3 function myfunc1() {
    4 }
    5  
    6 myfunc2(); // 出错 TypeError: undefined is not a function
    7  
    8 var myfunc2 = function() {
    9 };


  • 相关阅读:
    第四章——不定积分必记公式
    高等数学思维导图——4.一元函数积分学【不定积分+定积分】
    算法很美(三)
    第三章——微分中值定理与导数必记公式
    详解洛必达法则
    高等数学思维导图——3.微分中值定理与导数的应用
    Python课程笔记(二)
    第二章——导数与微分必记公式
    高等数学思维导图——2.导数与微分
    第二章.给客户所需之物
  • 原文地址:https://www.cnblogs.com/feng9exe/p/7190462.html
Copyright © 2011-2022 走看看