箭头函数: 用箭头定义函数........
          var fun = x=>x*x
alert(fun(2))            //单参数
 
var fun1 = ()=>2
alert(fun1())        //无参数
 
var fun2 = (x,y)=>x+y
alert(fun2(1,2))        //双参数
 
var fun3 = ()=>({a:12})
alert(fun3().a)          //返回值是对象(要加括号)
 
 
箭头函数有两种格式,一种像上面的,只包含一个表达式,连{ ... }return都省略掉了。还有一种可以包含多条语句,这时候就不能省略{ ... }return
 
 
箭头函数和匿名函数一个明显的区别是this指针。箭头函数中的this指针由上下文决定。
匿名函数实现的错误代码
var obj={
    a:12,
    b:13,
    funn:function()
    {
        var fn = function(){return this.a+this.b};
        return fn();
    }
}
alert(obj.funn());
这样写函数内部的函数this指针指向window或者undefine,当时的解决办法是that = this。现在有箭头函数就不用考虑这些
箭头函数实现的代码
var obj={
    a:12,
    b:13,
    funn:function()
    {
        var fn = ()=>this.a+this.b;
        return fn();
    }
}
alert(obj.funn());//25
 
ps:之前对函数内this指针绑定对象的实现用到了函数的apply和call功能。现在 用call()或者apply()调用箭头函数时,无法对this进行绑定,即传入的第一个参数被忽略。
 
 
 
 
generator : 生成器。
generator由function*定义(注意多出的*号),并且,除了return语句,还可以用yield返回多次。
由generator实现的斐波那契序列
function* fun(max)
{
    var a = 0;
    var b = 1;
    n = 1;
    while(n<=max){
        yield a;
        t = a + b;
        a = b;
        b = t;
        n++;
    }
    return a;
}
for(var i of fun(5))
{
    alert(i)  //0 1 1 2 3
}
 
 
调用generator对象有两个方法,一是不断地调用generator对象的next()方法
                                                 二是直接用for ... of循环迭代generator对象
 
 
generator 作用1: 因为generator可以在执行过程中多次返回,所以它看上去就像一个可以记住执行状态的函数,替代了用对象来保存状态
generator作用2: ,就是把异步回调代码变成“同步”代码
 
 作用3:。。。          
。。。。。

JavaScript箭头函数 和 generator的更多相关文章

  1. 轻松学习 JavaScript——第 6 部分:JavaScript 箭头函数

    JavaScript箭头函数是ECMAScript 6中引入的编写函数表达式的一种简便方法.通常,在JavaScript中,可以通过两种方式创建函数: 函数语句. 函数表达式. 可以如下所示创建函数语 ...

  2. JavaScript箭头函数中的this详解

    前言 箭头函数极大地简化了this的取值规则. 普通函数与箭头函数 普通函数指的是用function定义的函数: var hello = function () { console.log(" ...

  3. 动态导航栏和JavaScript箭头函数

    动态导航栏和JavaScript箭头函数 今天我们来写一下动态的导航栏,并且学一下JavaScript的箭头函数等相关问题. 样式如下所示: html中执行代码如下所示: <!DOCTYPE h ...

  4. javascript箭头函数把函数给简写了[0403]

    箭头函数把函数给简写了[0403]        我不是很喜欢箭头函数,总觉得它让原本就不那么严谨的js更加不严谨了,所以有时候看js程序也是一件很头痛的事情,不过在ES6中加入了这么一个新的方法,已 ...

  5. JavaScript 箭头函数

    ES6新标准增加了一种新的函数,箭头函数. x=>x*x 相当于: function (x){ return x*x; } 如果参数不是一个,就需要用括号()括起来: // 两个参数:var t ...

  6. javascript 箭头函数的使用 初学者必看

    为了保证可读性,本文采用意译而非直译.另外,本文版权归原作者所有,翻译仅用于学习. 本文我们介绍箭头(arrow)函数的优点. 更简洁的语法我们先来按常规语法定义函数: 1 2 3 4 5 funct ...

  7. JavaScript箭头函数(Lambda表达式)

    箭头函数也叫lambda表达式 据说其主要意图是定义轻量级的内联回调函数 栗有: 1 var arr = ["wei","ze","yang" ...

  8. JavaScript 箭头函数(Lambda表达式)

    Lambda表达式(箭头函数)用于表示一个函数,所以它和函数一样,也拥有参数.返回值.函数体,但它没有函数名,所以Lambda表达式相当于一个匿名函数. 使用方法: ()=>{} 小括号里放参数 ...

  9. javascript箭头函数

    原文 https://thewebjuice.com/es6-arrows/ 1 使用es6箭头定义匿名函数 (msg)=>console.log('Hello World') es5 'use ...

随机推荐

  1. ArcGIS10.1 发布气温插值GP服务

    首先通过ModelBuilder 工具 构建模型 然后通过模块右键 设置输入参数 或者直接将一个模块设为输入参数 在输出模块的右键属性上 可以设置lyr文件用于渲染 设置数据添加到显示用于不是发布的时 ...

  2. Struts 笔记 内部资料 请勿转载 谢谢合作

    Struts 概述 随着MVC 模式的广泛使用,催生了MVC 框架的产生.在所有的MVC 框架中,出现最早,应用最广的就是Struts 框架. Struts 的起源 Struts 是Apache 软件 ...

  3. jdbc连接mysql

    package june25jdbcTest; import java.sql.Connection;import java.sql.DriverManager;import java.sql.Res ...

  4. Mysql空用户导致数据库登陆故障处理 (原创帖,转载请注明出处)

    首先感谢在本次故障中阿铭对我的无私帮助,万分感谢!阿铭linux论坛:http://www.apelearn.com/study_v2/   问题描述: 公司安全部门扫描到数据库空密码漏洞,用户名密码 ...

  5. openGL 环境配置

    1.(glfw) 参考地址:http://www.cnblogs.com/be2n2me/p/3701338.html 在Mac OS X EI Capitan上sudo make install时遇 ...

  6. mybatis.xml文件中#与$符号的区别以及数学符号的处理

    1.#{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换,#{}可以有效防止sql注入. #{}可以接收简单类型值或po ...

  7. Python3基础 创建一个空列表,一个空元组

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...

  8. Javascript学习笔记:闭包题解(4)

    代码: var val1=0; var val2=0; var val3=0; for(var i1=1;i1<=3;i1++){ var i2=i1; (function(){ var i3= ...

  9. C#知识点总结系列:4、C#中Monitor和Lock以及区别

    Monitor对象 1.Monitor.Enter(object)方法是获取锁,Monitor.Exit(object)方法是释放锁,这就是Monitor最常用的两个方法,当然在使用过程中为了避免获取 ...

  10. MySQL环境部署

    阅读目录: 1.Windows下安装MySQL 2.Linux下安装MySQL 序章: MySQL是个小型的数据库,用来自己做小项目,做学习练习什么的再适合不过了,不过新手总会被一些莫名奇妙的问题难住 ...