zoukankan      html  css  js  c++  java
  • js-高级04-函数高级应用

    一,函数的三种定义方式
    1,函数声明
    function fn(){
    console.log('this is a function')
    }
    
    2,函数表达式
    var fn = function(){
    
    3,内置构造函数
    var fn=new Function("name","age","alert(name+age)")
    
    二,函数的调用
    1,自调用
    (function(){
    console.log('我是自调用函数')
    })()
    
    2,普通调用
    var f1 = function(){
    alert('我是一个函数')
    }
    f1();
    
    3,对象属性中调用
    var o = {a:function(){console.log('我是函数a')}}
    o.a();
    
    4,数组中
    var arr = [function(){alert('我是第一个')},
    function(){alert('我是第二个')},
    function(){alert('我是第三个')}]
    arr[0]();
    
    5,回调函数
    function a(fn){
    fn();
    }
    a(function(){console.log('我是a的回调函数')})
    
    三,apply,call和bind的使用
    call 和 apply 特性一样
    都是用来调用函数,而且是立即调用,但是可以在调用函数的同时,通过第一个参数指定函数内部 this 的指向
    call 调用的时候,参数必须以参数列表的形式进行传递,也就是以逗号分隔的方式依次传递即可
    apply 调用的时候,参数必须是一个数组,然后在执行的时候,会将数组内部的元素一个一个拿出来,与形参一一对应进行传递
    如果第一个参数指定了 null 或者 undefined 则内部 this 指向 window
    bind
    可以用来指定内部 this 的指向,然后生成一个改变了 this 指向的新的函数它和 call、apply 最大的区别是:bind 不会调用,bind 支持传递参数,它的传参方式比较特殊,一共有两个位置可以传递
    在 bind 的同时,以参数列表的形式进行传递
    在调用的时候,以参数列表的形式进行传递
    那到底以谁 bind 的时候传递的参数为准呢还是以调用的时候传递的参数为准
    两者合并:bind 的时候传递的参数和调用的时候传递的参数会合并到一起,传
    递到函数内部
    四,高级应用
    函数的其它成员
    arguments实参集合
    caller函数的调用者
    length形参的个数
    name函数的名称
    函数可以用于参数也可用于返回值
    五,函数闭包
    什么是闭包
    闭包就是能够读取其他函数内部变量的函数,由于在 Javascript 语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成 “定义在一个函数内部的函数”。所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。
    闭包的用途:
    1,可以在函数外部读取函数内部成员
    2,让函数内成员始终存活在内存中
    
    
  • 相关阅读:
    Section 3.1 Shaping Regions
    3D@OpenSource
    查找资料
    Section 3.1 Shaping Regions Again
    USACO Contact IOI’98 TLE
    事项ON丰宁坝上草原
    四叉树@POJ1610 Quad Trees
    在TabCtrl上放View@MFC
    CUGB的一场周赛
    贴图程序进展
  • 原文地址:https://www.cnblogs.com/adylz111/p/13433767.html
Copyright © 2011-2022 走看看