当前位置: 首页 > news >正文

网站建设推广资讯江都建设集团有限公司官方网站

网站建设推广资讯,江都建设集团有限公司官方网站,旅游网站建设的功能定位,免费做视频网站1.箭头函数的写法 如果函数内有返回值 var fn v > v 1 返回值如果不是表达式(是对象),用()括号返回 var fn v > ({ obj: v }) 返回值如果不是表达式(也不是对象)方法体内按正常写 var fu () > {var a 1;var b a1;return b; } 2.箭头函数和普通…

1.箭头函数的写法

如果函数内有返回值

var fn = v => v + 1

返回值如果不是表达式(是对象),用()括号返回

var fn = v => ({ obj: v })

返回值如果不是表达式(也不是对象)方法体内按正常写

var fu = () => {var a = 1;var b = a+1;return b;
}

2.箭头函数和普通函数的区别

this指向不同:

箭头函数的this指向继承自其上一层作用域的this,无法通过call和apply改变this指向。

箭头函数的this指向由函数定义位置所决定而不是函数调用位置决定

不能作为构造函数(不能new) ,也没有prototype属性

1. this指向的问题

箭头函数本身是没有this的,他的this是从他作用域链的上一层继承来的,并且无法通过call和apply改变this指向

箭头函数的this,是看箭头函数定义位置所在的作用域,而不是函数调用的位置(也可以说继承上一级作用域的this)

2. 不能作为构造函数(不能new) 没有prototype属性

3. 没有arguments对象(函数传入的实参的集合),可以利用rest参数:...arguments

4. 不能使用yield命令,因此箭头函数不能用作 Generator 函数

function* fn(){yeild 1;yeild 2;return 3;
}
var f = fn();
f.next();// Generator 函数调用

5.函数新扩展的方法——给函数的参数指定默认值;与解构赋值默认值配合使用;通过rest参数获取函数的多余参数

箭头函数使用默认值

普通函数: 使用短路运算来给默认值

1.箭头函数使用默认值

function fn (x, y) {y = y || 1console.log('合计:'x + y)
}
//箭头函数
function fn (x, y = 1) {console.log('合计:'x + y)
}

2.与解构赋值默认值配合使用

// 与解构赋值默认值配合使用
function fn1 ({x, y = 1}) {console.log('合计:'x + y)
}
fn1({x: 1})

3.通过rest参数获取函数的多余参数 (rest参数只能放在末尾,不能再首位或中间)

function fn (x, ...y) {console.log(x)console.log(y)
}
fn(1, 2, 3, 4)
function m1({x = 0, y = 0} = {}) {return [x, y];
}
function m2({x, y} = { x: 0, y: 0 }) {return [x, y];
}
console.log(m1())
console.log(m2())
console.log(m1({x: 3}))
console.log(m2({x: 3})) // 3, undefined

 

6.箭头函数的实际运用

vue项目中的实际运用:点击按钮时,打开msgbox的窗口。在普通函数和this函数下不同写法

7.箭头函数相关面试题

面试题1

var name = 'window'
var obj = {name: 'obj',methods: () => {console.log(this.name)},fn: function (cb) {cb()}
}
obj.fn1 = function () {obj.fn(() => { console.log(this.name) })
}
var fn1 = obj.fn1
obj.methods() //箭头函数this取决于定义位置的作用域的this,定义在obj对象(而对象没有作用域),所以只能是window,所以打印window
obj.fn(() => { console.log(this.name) })//箭头函数作为参数传入,定义在函数调用位置,还是在全局作用域,所以还是window
fn1() // 定义在obj.fn()中定义的,而obj.fn()是指向window
obj.fn1() //obj

面试题2

var fn = function () {return () => { console.log(this.name) }
}
var obj1 = {name: '张三'
}
var obj2 = {name: '李四'
}
var name = '王五'
obj1.fn = fn
obj2.fn = fn
obj1.fn()() //obj1.fn()先执行,再将执行结果作为方法名进行执行
obj2.fn()()
fn()()

面试题3

var user = {name: '张三',fn: function () {var obj = {name: '李四'}var f = () => this.name// 箭头函数this取决于定义位置所在的位置,即和fn的this指向保持一直return f.call(obj)}
}var res = user.fn(); //张三

http://www.yayakq.cn/news/521084/

相关文章:

  • 自己做的网站被举报违反广告法wordpress固定链接目录
  • 北京网站建设公司哪家实惠大一网页设计期末作业
  • 亚马逊网站 如何做站内seo哪家建设网站
  • 福州执业建设中心网站福州建站模板厂家
  • 广州的网站建设网站开发技术报告模板
  • 相馆网站建设费用预算国家企业信息公开网查询系统
  • 做网站需要准备的东西网络营销的特点不包括
  • 搜索关键词网站徐州网站优化推广
  • 北京科技网站建设公司许昌抖音推广公司
  • 网站建设应用权限空间做网站
  • 智能营销客户管理系统搜索引擎优化培训班
  • 邓州建网站网站仿做
  • 网站建设陆金手指下拉贰拾销客多分销小程序价格
  • 学做网站培训机构网站建设 专家
  • 怎么更换网站图片为什么做织梦网站时图片出不来
  • 网站服务器检测广州市建筑业联合会
  • 中企动力做的保安服务网站开发公司网签合同条件
  • 织梦游戏网站源码定制网站开发系统
  • 中秋网页设计素材网站建设一个网站需要做哪些工作内容
  • 手机 网站 翻页 外部wordpress 图片 主题 52
  • wordpress 导入网站模板网址搜索
  • 从那些方面建设网站一个简单的网页代码带图片
  • 国外比较好的资源网站大淘客网站如何做seo
  • 上海协策网站制作做网站用什么编程
  • 3d网站制作网站建设的文案
  • 做网站的搜索引擎广州南建站时间
  • 昌江县住房和城乡建设局网站餐饮加盟网网站建设
  • 上海建设机械网站通州网络推广
  • 更改备案网站名称网站免费推广怎么做
  • 网站建设 教学视频教程施工企业样板先行制度