美文网首页
2018-07-22 学习总结

2018-07-22 学习总结

作者: 小本YuDL | 来源:发表于2018-07-23 08:45 被阅读0次
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进行绑定,即传入的第一个参数被忽略。

相关文章

  • 59号张玉读后感3

    【59号-张玉-《如何阅读》读后总结】 2018-07-22 19:18 · 字数 1209 · 阅读 1 · 日...

  • 2018-07-22 学习总结

    1.闭包 1.闭包就是函数的返回值也是个函数当一个函数的返回值也是一个函数时,其内部的局部变量还被新函数引用,内部...

  • 2018-07-22

    2018-07-22

  • 2018-07-22

    2018-07-22 有一天_ceb9 2018-07-22 tcd提案改善方案 姓名:陈林 部门:三分厂 岗位:...

  • 2018-07-22

    2018-07-22 承迪柴迪迪 公司:宁波市镇海承迪文具有限公司 【日精进打卡第103天】 一:【知~学习】 《...

  • 素言

    知世故而不世故 历圆滑而弥天真 2018-07-22

  • 有一种坚持叫复盘第196天 奔跑的人鱼

    2018-07-22晴 专业 (寻找一个点花10倍速刻意学习) 7月主题 买卖业务流程 资源 (资料与人脉)业力渗...

  • 7-22第七周周检视

    2018-07-22第七周周檢視分享 又到了踐行第7周,一周的踐行檢視做一個分享。 学习与自我提升 转型: ...

  • 忆梅☕️小花大美

    见与不见 我就在这里清绝 不争朝夕 不论日月 忆梅 2018-07-22

  • 忆童年~那个转学漂泊的行走背影~

    艾迪于心 2018-07-22 11:38 · 字数 884 · 阅读 20 · 【择 诉】 看着窗外不算干净的有...

网友评论

      本文标题:2018-07-22 学习总结

      本文链接:https://www.haomeiwen.com/subject/rrilmftx.html