2018-07-22 学习总结

1.闭包

1.闭包就是函数的返回值也是个函数
当一个函数的返回值也是一个函数时,其内部的局部变量还被新函数引用,内部变量的使用就会造成错误。
注意:返回函数不要引用任何循环变量,或者后续会发生变化的变量(例如for循环的变量)
eg:

function count() {
    var arr = [ ];
    for (var i=1; i<=3; i++) {
        arr.push(function () {
            return i * i;
        });
    }
    return arr;
}
var results = count();
f();//此时内层函数for的i已经变为4,在被外层函数使用,得到的值最终是16

2.解决方法:再创建一个函数,用该函数的参数绑定循环变量当前的值,无论该循环变量后续如何更改,已绑定到函数参数的值不变。
eg:

function count() {
    var arr = [];
    for (var i=1; i<=3; i++) {
        arr.push((function (n) {
            return function () {
                return n * n;
            }
        })(i));//把该函数的参数绑定 i 当前的值
    }
    return arr;
}

创建一个匿名函数并立刻执行,形如:
(function (x) { return x*x } (3))

2.箭头函数

1.箭头函数相当于匿名函数,并且简化了函数定义。
形式: x => xx;
等价于:
function( x) {
return x
x;
}
箭头函数有两种格式:
第1种是只包含一个表达式,连{ ... }和return都省略掉了。
eg:

x => x*x;

第2种可以包含多条语句,这时候就不能省略{ ... }和return:
eg:

 x => {
   if(x >0)
         return  x*x ;
   else
        return x*(-x);
}

两个参数,括号括起来: (x, y) => x * x + y * y;

如果返回对象,因为函数体{.....}会与对象冲突,所以改变为(....):
x = ( { foo:x } );

箭头函数的this的指向和作用域是根据上下文决定的。也更加方便的解决了之前出现的this指向对象问题。
箭头函数完全修复了this的指向,this总是指向词法作用域,也就是外层调用者xiaoming。

var xiaoming = {
    name:'小明 ',
    birth: 1990,
    getAge: function () {
        var b = this.birth;   // 1990
        var fn = () => new Date().getFullYear() - this.birth; // this指向xiaoming
        return fn();
    }
};
xiaoming.getAge(); // 28

由于this在箭头函数中已经按照词法作用域绑定了,所以,用call()或者apply()调用箭头函数时,无法对this进行绑定,即传入的第一个参数被忽略。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 3,186评论 2 9
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,727评论 19 139
  • *还没修改过 我已经在日记说过,我在加拿大的时候买了一台Kindle,这是让我更方便看英文书,也不用买那么多...
    tommy写作阅读 452评论 0 1
  • 阅读以及网络探索是极其有趣的。之后就是音乐等带给你的美的感受。 看到一个教授,名字叫John Tichy who ...
    阿大鱼阅读 614评论 0 0
  • 引子:年寿有时而尽,荣乐止乎其身,二者必至之常期,未若文章之无穷 正文/曹丕:在这样对人生的失望里,保持微笑 作者...
    HUNK007阅读 4,292评论 0 2

友情链接更多精彩内容