funObj closure

6.7 函数对象及闭包学习

 * 24.函数对象
 * 25.匿名函数
 * 26.闭包
函数对象

创建函数对象:3种:

  1. 声明方式创建:
    只有以声明方式创建的函数才能被hoist(声明提前)
    function 函数名(参数列表){函数体;return 返回值};
  2. 函数直接量:
    var 函数名=function (参数列表){函数体;return 返回值};
  3. 实例化对象: 参数名和函数体都是字符串
    var 函数名=new Function(
    "参数名1","参数名2",...,"函数体; return 返回值");
function one (a,b){
  return a+b;
}

var two = function (a,b) {
    return a+b;
}

var three = new Function(
    'a','b','return a+b;'
);

arguments对象:接收所有传入函数的参数值的类数组对象
默认所有函数都会自动创建,直接可用。
类数组对象:长得像数组的对象,不是数组类型的实例(对象)
arguments instanceof Array -->false

function ar() {
    if (arguments.length==1){
        console.log('length=1');
    }else if(arguments.length==2){
        console.log('length=2');
    }
    console.log(arguments instanceof Array);    //false
}
ar(1);
ar(1,2);
匿名函数

没有函数名的函数定义
没有任何变量引用
何时:只要一个函数只执行一次时,就用匿名函数。
执行完,立刻释放!
为什么使用:匿名函数没有变量引用,调用完自动释放!
缺点:不可重用!
如何使用:2种:

  1. 匿名函数自调: 定义后立刻调用
    何时使用:只要一个函数只执行一次时
    如何使用:
    (function([参数列表]){
    函数体;
    return 返回值
    }([参数值列表]));
  2. 回调:将函数作为对象传递给其他函数,由其它函数调用
//自调
(function(){
    console.log("111");
})();

//回调
var arr = [1,9,3,7];
arr.sort(function(a,b){
    return a-b;
});
console.log(arr);
闭包

判断闭包:3特点:

  1. 内外层函数嵌套

  2. 内层函数必须使用了外层函数的局部变量

  3. 外层函数将内层函数返回到外部,可在外部调用

    判断闭包结果:2句话:

  4. 外层函数调用了几次,就有几个受保护的局部变量副本

  5. 同一次外层函数调用返回的内部函数对象,操作同一个变量

    闭包: 实现可重用的局部变量,且保护其不受污染的机制

function f1(){
    var i = 1;
    function  f2(){
        i++;
        console.log(i);
    }
    return f2;
}
var rs = f1();
rs();//局部变量,重用
rs();
rs();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin? Kotlin 是种静态类型编程...
    任半生嚣狂阅读 26,276评论 9 118
  • 86.复合 Cases 共享相同代码块的多个switch 分支 分支可以合并, 写在分支后用逗号分开。如果任何模式...
    无沣阅读 1,438评论 1 5
  • 三、闭包和高阶函数 3.1 闭包 3.1.1 变量的作用域 所谓变量的作用域,就是变量的有效范围。通过作用域的划分...
    梁同学de自言自语阅读 1,494评论 0 6
  • 要点: 函数式编程:注意不是“函数编程”,多了一个“式” 模块:如何使用模块 面向对象编程:面向对象的概念、属性、...
    victorsungo阅读 1,563评论 0 6
  • 我见到的很多大学生在大学里并没有碌碌无为,他们是充满斗志的一群人。 社团里忙东忙西,只因为大家的同一个爱好 学生会...
    美梁阅读 219评论 0 0