react学习历程1——箭头函数

写在前面:老同事推荐学习react,说这个框架比vue更加适合测试人员使用,于是开始了react学习之旅。另外下面所以理解全部为自己的理解,可能有误哈

基础语法:

(variables)=>{statements}

正常的函数定义如下:

function myfunc(variables){
    statements
}

箭头函数,顾名思义,就是正常函数的简化写法,因为我是python出身,感觉和python中的lambda声明的匿名函数类似,可以使用变量进行接收,然后如果需要使用,可以调用变量

实际举个例子,遍历人名数组,如果人名的长度小于3,就返回错误提示,其他的正常返回人名(初学,忽略优化bug哈)

    const materials = ['yaoming', 'geyou', 'auther', 'a', 'o'];
    //()=>{},map遍历,前面是遍历元素定义的变量名,后面是需要返回的逻辑体
    document.getElementById('demo').innerHTML = materials.map(material => {
        if (material.length < 3) {
            return "error<br/>";
        } else {
            return material+'<br/>';
        }
    });

这里有一个注意点,当入参只有一个的时候,小括号可以省略;当出参只有一个的时候,大括号+return可以省略。当然函数是可以没有return,但statements

const materials=['yaoming','zhugeliang','liubei'];
document.getElementById('demo').innerHtml=materials.map(material=>material.length);

this,正常函数中如果使用this就是指向自己,箭头函数的特殊之处在于,他没有this,所以在函数内部使用箭头函数就可以直接使用this来正常使用函数属性了

    function Persion() {
        //注意,var定义的变量不是Persion属性,可以理解为局部变量,属性必须使用this
        this.age = 0;
        var f = () => {
            this.age++;
        };
        f();
        document.getElementById('demo').innerHTML = this.age;
    }
    var p = new Persion();
    p.age += 10;
    document.getElementById('demo1').innerHTML = p.age;

还是说到python中的匿名函数,不需要重复使用该函数的时候,才会选择使用匿名函数,如果需要被复用的函数,我们并不会选择去定义匿名函数,哪怕可以用变量接收,然后达到复用的目的。相同的,箭头函数在需要复用的时候,同样不推荐使用箭头函数。而且箭头函数不适用call和apply,下面解释一下call和apply

<script>
    data1 = {a: 1, b: 2};
    data2 = {a: 11, b: 22};

    function add(c) {
        return this.a + this.b + c;
    }
    //call和apply作用其实一样,区别只是接收参数的数据格式不一致罢了
    document.getElementById('demo1').innerHTML = add.call(data1, 8);
    document.getElementById('demo2').innerHTML = add.apply(data2, [8]);
</script>

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值