JS中generater和箭头函数

generater跟函数很像:

function* fn(x){ yield x; yield x++; return x;}

如上所示,generater用function*定义,可以用yield返回多次,也可以使用return返回;

调用generater有两个方法,一是一直调用generater的next()方法;

console.log(fn.next());

console.log(fn.next());

console.log(fn.next());

直到fn.next()返回true,遍历结束;

第二种,使用for....of;

for(var i of fn());

箭头函数

ES6新加的函数;

函数用=>定义;

例如:X=>X * X;

相当于function(x){

return x * X;

}

当参数大于一个时用()括起来;

如果返回的是对象,则需要这样写;

x => ({ fun: x })

箭头函数的最大作用是修复了this的指向;

在闭包函数中用箭头函数就不需要使用之前的hack方式修改this的指向了,用箭头函数替代该函数就可以了。

时间: 2024-12-22 20:30:33

JS中generater和箭头函数的相关文章

js中this,箭头函数和普通函数

四种基本用法 1. 一般方法中,this代指全局对象 window 2. 作为对象方法调用,this代指当前对象 3. 作为构造函数调用,this 指代new 出的对象 function test(){ this.x = 1; } var o = new test(); alert(o.x); //1 4. 调用方法的apply和call方法,可以改变函数的调用对象/作用域 (this)用法: f.apply([thisObj [,argArray] ]); f.call([thisObject

JS中的自执行函数

本来规划的是2013年,狠狠的将JS学习下,谁知计划赶不上变化,计划泡汤了.13年的我对JS来说可以说是属于跟风,对它的理解和认识也仅仅是皮毛而已,也是因为要完成<ArcGIS API for JavaScipt开发教程>而临阵磨枪. 在接触JS一段时间后,觉得还是比较灵活的,灵活的前提是要更深入的了解,就像两个陌生的人,相处的时间长了,了解的时间长了,难免会产生感情一样.对于JS也开始产生了感情,这种感情体现在工作中,体现在周围的环境中. 目前很多开发者纷纷加入JS的阵营,看来这已经不是跟风

JS中构造函数与普通函数的区别及JS构造函数、原型和实例的关系

JS中构造函数与普通函数的区别: https://www.cnblogs.com/cindy79/p/7245566.html JS构造函数.原型和实例的关系: https://blog.csdn.net/u012443286/article/details/78823955 JavaScript构造函数及原型对象: https://blog.csdn.net/a153375250/article/details/51083245 原文地址:https://www.cnblogs.com/jim

JS中的几种函数

函数可以说是js中最具特色的地方,在这里我将分享一下有关函数的相关知识: 包装函数:        (function foo(){...})作为函数表达式意味着foo只能在...所代表的位置中被访问,外部作用域则不行 (function foo(){...})()        第一个()将函数变成表达式,第二个()执行了这个函数,这种模式代表立即执行函数表达式   包装函数的声明以(function...而不是function开始,函数会被当作函数表达式而不是一个标准的函数声明来处理    

【转载】JS中bind方法与函数柯里化

原生bind方法 不同于jQuery中的bind方法只是简单的绑定事件函数,原生js中bind()方法略复杂,该方法上在ES5中被引入,大概就是IE9+等现代浏览器都支持了(有关ES5各项特性的支持情况戳这里ECMAScript 5 compatibility table),权威指南上提到在ES3中利用apply模拟该方法的实现(JS权威指南中函数那章), 但无法真实还原该方法, 这也是真bind方法中的有趣特性. (原文这边理解有问题, 这段话的意思如果结合犀牛书上下文的意思, 再结合犀牛书中

js中的类型和函数参数传递类型问题

js中的类型: 2大类型:原始类型和对象. 原始类型有 boolean.number.string这三个普通原始类型,还有null.undefined这俩特殊原始类型 对象嘛就多了,普通对象.内置对象.全局对象.函数.数组等. 函数参数传递类型: 对于原始类型,传递的是值,即复制一份传入函数,在函数内部修改不影响外部变量本身. 对于对象类型,传递的是地址,在函数内部修改对象时会导致外部变量发生变化. 注意这种情况!参考如下代码: var oMyObj = {name:"罗伯特"}; f

js中(function(){…})()立即执行函数写法理解

javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各型各色的写法也是对javascript语言特性更进一步的深入理解. ( function(){…} )()和( function (){…} () )是两种javascript立即执行函数的常见写法,最初我以为是一个括号包裹匿名函数,再在后面加个括号调用函数,最后达到函数定义后立即执行的目的,后来发现加括号的原因并非如此.要理解立即执行函数,需要先理解一些函数的基本概念.

js 中特殊形势的函数-匿名函数的应用

javascript中的匿名函数,那什么叫做匿名函数? 匿名函数就是没有函数名称:演示代码: 1 <script> 2 function(x,y){ 3 return x+y //这个就是一个匿名函数,没有函数名,但是这个函数不能调用.如何调用呢? 4 } //要声名一个变量,然后把这个匿名函数的执行的代码,和返回值赋值给声名的变量 5 </script> javascript中的函数也是一种数据类型,只不过这种特殊类型有两个重要的特性: 1.他们所包含的是代码. 2.他们是可以执

JS中的立即执行函数

函数声明: function fnName(){......};使用function关键字声明一个函数,再指定一个函数名,叫函数声明. 函数表达式: var fnName = function(){...};使用function 关键字声明一个函数,但未给函数命名,最后将匿名函数赋予一个变量,叫函数表达式,这是最常见的函数表达式语法形式. 匿名函数: function(){};使用function关键字声明一个函数,但未给函数命名,所以叫匿名函数,匿名函数属于函数表达式,匿名函数有很多作用,赋予