zoukankan      html  css  js  c++  java
  • javascript之函数篇

    1、我们都知道定义函数有两种方式:函数声明和函数表达式(其实还有Function构造函数方式,不推荐使用)

    如:

    声明方式:function sum(num1,num2){returm num1+num2;}  //重要特征:函数声明提升

    表达式方式:var sum=function(num1,num2){return num1+num2;} ;   // 注意末尾有一个分号,就像声明其它变量一样

    构造函数方式(不推荐,因为影响性能,但可帮助理解函数就是对象) var sum=new Function(num1,num2,"return num1+num2;");

    2、在把函数当成值来使用的情况下(如作为另一个函数的参数或返回值),都可以使用匿名函数,但这并不是匿名函数的唯一用途。

    3、递归:

    最普通的方式:

    function m(n){
    if(n<=1){return 1;}
    else{return n*m(n-1);}
    }

    //可能会报错,如  var o=m; m=null;o(4);  就会报错。

    使用 arguments.callee

    function m(n){
    if(n<=1){return 1;}
    else{return n*arguments.callee(n-1);}
    }

    点评:在严格模式下不允许通过脚本访问arguments.callee

    最后一种:

    var f=(function m(n){
    if(n<=1){return 1;}
    else{return n*arguments.callee(n-1);}
    });

    点评:就不会出现上面的问题啦。

    4、闭包

    5、循环中  return 相当于continue   return false 相当于break

  • 相关阅读:
    slots属性(省内存,限制属性的定义)
    自定制格式化方式format
    改变对象的字符串显示__str__repr
    __getattribute__和item系列
    授权(类似)
    双下划线开头的attr方法
    动态导入模块
    反射
    python的单下划线和双下划线
    在子类中调用父类的方法
  • 原文地址:https://www.cnblogs.com/lxf1117/p/4166114.html
Copyright © 2011-2022 走看看