zoukankan      html  css  js  c++  java
  • 函数声明和函数表达式

    定义函数的常见方法:

    函数声明的一个特征:函数声明提升;

    函数声明如:

    function fName(){
    
    }

    函数表达式也是常见的创建函数的方法:

    var fName = function ( ) { 
    
    }

    函数表达式的另一种声明的方法:
    (function f(){}); //()是一组分组操作符,它的内部只能包含表达式

    注意:函数表达式与其他表达式一样,在使用前一定要进行赋值操作。在把函数当做值来使用的情况下,都可以使用匿名函数,

    但是这不是匿名函数的唯一用途。

    创建函数也可以再另一个函数中返回一个函数

    function create ( ){ 
                  
                      ..........
                  
                     return function( ){
                               ........
                     };    
          
    }              

    函数递归:一个函数通过调用自身的情况

    funtion fName (){
    
    
                if(num <= 1){
                        return 1;
                }else{
                        return num * arguments.callee( num -1 );//arguments.callee是一个指向当前函数的一个指针 
                }
    
    }        

    闭包:是指有权访问另一个函数作用域中的变量的函数,闭包会携带包含它的函数的作用域变量对象。

    一个闭包的例子:

     1 var name = " 闭包";
     2                 
     3     var object = {
     4                     
     5         name : "JS",
     6                     
     7         getName : function(){
     8                     
     9             //这是一个闭包
    10             return function(){
    11                     return this.name;
    12             };
    13                         
    14     }
    15                         
    16 };

    由上面的例子谈下关于闭包的this对象,闭包的this对象一般情况下指向的是window;

     1 var name = " 闭包";
     2 
     3 var object = {
     4     
     5     name : "JS",
     6     
     7     getName : function(){
     8     
     9             //这是一个闭包
    10             return function(){
    11                 return this.name;
    12             };
    13         
    14     }
    15         
    16 };
    17 
    18 console.log(object.getName()()); //输出闭包 this指向 window
     1 var name = " 闭包";
     2 
     3 var object = {
     4     
     5     name : "JS",
     6     
     7     getName : function(){
     8     
     9             //把包含函数的this引用复制给变量,在闭包中调用,改变闭包的this引用
    10             
    11             var _this = this;
    12             
    13             //这是一个闭包
    14             return function(){
    15                 return _this.name;
    16             };
    17         
    18     }
    19         
    20 };
    21 
    22 console.log(object.getName()()); //输出JS this指向 object
  • 相关阅读:
    【调查】用户眼中已经消亡的十大IT技术
    Asp.net Cache
    双卡已落伍 三卡三待全键盘手机亮相
    C#修改本机的IP,网关等网络地址的代码片段
    【ZT】实战.NET大规模网站架构:Web加速器
    【面霸】面试ERP实施顾问的三招“必杀技”
    数据库优化使用索引优化存储过程
    【備查】informix sql函数使用说明大全
    “8月3日我们要过男人节”
    Asp.Net网站优化:数据库索引优化
  • 原文地址:https://www.cnblogs.com/hellome/p/4019463.html
Copyright © 2011-2022 走看看