javascript核心技术(五十七)箭头函数与普通函数的区别 箭头函数的6个注意事项

[复制链接]
查看: 1745|回复: 31
发表于 2023-1-29 18:12:37 | 显示全部楼层 | 阅读模式
<!DOCTYPE html>
<html>

<head>
        <title>箭头函数与普通函数的区别 箭头函数的6个注意事项</title>
</head>

<body>
        <script type="text/javascript">
        //1.使用typeof判断箭头函数,结果为function
        var f1 = a=>a;
        console.log(typeof f1);//'function'

        //2.使用instanceof判断箭头函数是否为Function,结果为true 。即:箭头函数也是Function构造函数的实例
        var f1 = a=>a;
        console.log(f1 instanceof Function);//true

        //3.箭头函数中的this指向
        //箭头函数 不改变this指向(不绑定this)
        //对象方法中嵌套函数时,this指向调用者,而普通函数始终指向window
        //对象方法如果是普通函数,单层函数的this指向为obj
        var obj = {
                  say:function(){
                          console.log(this);//this就是obj
                  }
        };
        obj.say();

        //对象方法如果是普通函数,如果嵌套函数,那么函数内的this指向变为window
        var obj = {
                  say:function(){
                          console.log(this);//this就是obj
                      var f1 = function(){
                                console.log(this);//window
                };
                      f1();
                  }
        };
        obj.say();

        //对象方法如果是普通函数,如果想在多层嵌套函数中使用obj,就需要在外层用一个变量接收obj
        var obj = {
                  say:function(){
                          console.log(this);//this就是obj
                      var _this = this;
                      var f1 = function(){
                              console.log(_this);//obj
                                console.log(this);//window
                };
                      f1();
                  }
        };
        obj.say();

        //箭头函数无论如何嵌套,函数内部的this永远指向obj
        var obj = {
                  say:function(){
                          console.log(this);//this就是obj
                      //箭头函数
                var f2 = ()=>{
                                console.log(this);//this还是obj
                };
                      f2();
                  }
        };
        obj.say();


        // 4.箭头函数不能做构造函数,不能用new实例化,也没有prototype属性
        // var Person = ()=>{};
        // console.log(Person.prototype);//undefined
        // var p = new Person();//报错

        // 5.箭头函数内部没有arguments
        // var f1 = ()=>{
        //         console.log(arguments);
        // };
        // f1(); //报错
        // 
        // 6.箭头函数也支持默认参数、剩余参数、和解构语法
        var f2 = (...x)=>{
                  console.log(x); //[3,4]
        };
        f2(3,4);

        var f3 = ([x,y]=[])=>{
                  console.log(x, y); //3 4
        };
        f3([3,4]);
        </script>
</body>

</html>


javascript核心技术(五十七)箭头函数与普通函数的区别 箭头函数的6个注意事项

易博软件介绍

0

主题

13

帖子

7

积分

营销入门

Rank: 2

积分
7
发表于 2023-2-23 00:09:25 | 显示全部楼层
ai~~受不了。。一个怕麻烦的人。。唉。。。

0

主题

21

帖子

11

积分

营销入门

Rank: 2

积分
11
发表于 2023-3-5 21:26:10 | 显示全部楼层
真的使我体会到好多~~~~~~~~~~~~~~~~学海无崖

0

主题

10

帖子

6

积分

营销入门

Rank: 2

积分
6
发表于 2023-3-16 06:08:29 | 显示全部楼层
你的这编文章让我体味到做程序员的艰难历程  
发表于 2023-3-24 22:30:23 | 显示全部楼层
^不错,网上代码一大片,都是些转来转去的,自己用心去写的很少了,

0

主题

3

帖子

2

积分

终身会员

Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25

积分
2
发表于 2023-3-31 13:49:59 | 显示全部楼层
ding

0

主题

17

帖子

9

积分

营销入门

Rank: 2

积分
9
发表于 2023-4-4 17:45:36 | 显示全部楼层
不错,真的不错,很受感悟,让计算机执行更少的指令完成更多的工作,才是我所愿~

0

主题

17

帖子

9

积分

营销入门

Rank: 2

积分
9
发表于 2023-4-10 03:48:57 | 显示全部楼层
你是我的小目标 呵呵

0

主题

12

帖子

7

积分

营销入门

Rank: 2

积分
7
发表于 2023-4-14 19:48:17 | 显示全部楼层
我很佩服你的才能啊!我不知道什么时候才能到你那种级别,佩服佩服
发表于 2023-4-19 17:53:52 | 显示全部楼层
跪读
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|Archiver|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表