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

ES6面试题——箭头函数和普通函数有什么区别

1. this指向问题

<script>
let obj = {a: function () {console.log(this); // 打印出:{a: ƒ, b: ƒ}},b: () => {console.log(this); // 打印出Window {window: Window, self: Window,...}},
};
obj.a();
obj.b();
</script>

箭头函数中的this是在箭头函数定义时就决定的,而且是不可修改的(call,apply,bind)

箭头函数的this指向定义的时候,外层第一个普通函数的this

<script>
let obj = {run: function(){return () => {console.log( this ); // 打印出:{run: ƒ}}}
}
obj.run()();
</script>

2. 箭头函数不能new(也就是不能当作构造函数)

<script>
let run = ()=>{return 1111
}
console.log( new run() ); // 会报错:run is not a constructor
</script>

3. 箭头函数没有prototype(原型对象)

<script>
let run = ()=>{return 1111
}
console.log( run.prototype ); // 打印出:undefined
</script>

4. 箭头函数没有arguments

/* 箭头函数没有arguments */
<script>
let run = ()=>{console.log( arguments );  // 会报错arguments is not defined
}
run();
</script>/* 普通函数是一定有arguments的 */
<script>
let run = function (){console.log( arguments );  // 打印出:Arguments [callee: ƒ, Symbol(Symbol.iterator): ƒ]
}
run();
</script>

http://www.lryc.cn/news/387779.html

相关文章:

  • WordPress中文网址导航栏主题风格模版HaoWa
  • ThreadPoolExecutor基于ctl变量的声明周期管理
  • 运维锅总详解Prometheus
  • 深入解析Tomcat:Java Web服务器(上)
  • 【第9章】MyBatis-Plus持久层接口之SimpleQuery
  • 一文带你了解乐观锁和悲观锁的本质区别!
  • Android Studio环境搭建(4.03)和报错解决记录
  • 基于协同过滤的电影推荐与大数据分析的可视化系统
  • 修复vcruntime140.dll方法分享
  • PostgreSQL的系统视图pg_stat_wal_receiver
  • Qt之Pdb生成及Dump崩溃文件生成与调试(含注释和源码)
  • 视频号视频怎么保存到手机,视频号视频怎么保存到手机相册里,苹果手机电脑都可以用
  • Softmax函数的作用
  • cesium 添加 Echarts 图层(空气质量点图)
  • Python技术笔记汇总(含语法、工具库、数科、爬虫等)
  • Nacos-注册中心
  • Unity制作一个简单抽卡系统(简单好抄)
  • 简单多状态DP问题
  • cpu,缓存,辅存,主存之间的关系及特点
  • 【每日刷题】Day77
  • chrome-base源码分析(1)macros模块
  • 玩转springboot之springboot定制嵌入式的servlet
  • dell服务器RAID5磁盘阵列出现故障的解决过程二——热备盘制作与坏盘替换过程
  • Elasticsearch开启认证|为ES设置账号密码|ES账号密码设置|ES单机开启认证|ES集群开启认证
  • Excel 数据筛选难题解决
  • Web实时通信的学习之旅:WebSocket入门指南及示例演示
  • 分治精炼宝库-----快速排序运用(⌯꒪꒫꒪)੭
  • 快速修复mfc100u.dll丢失解决方案
  • 【C++深度探索】继承机制详解(一)
  • 力扣第218题“天际线问题”