美文网首页
几道小题

几道小题

作者: 小石头糖糖 | 来源:发表于2020-07-17 12:04 被阅读0次

    1、es3/es5、es6中 this 的指向 >>

        let factory = function () {
            this.a = 'a';
            this.b = 'b';
            this.c =  {
                a: "a+",
                //es3、es5中 this 指向该函数被调用时的对象
                b: function f() {
                    return this.a;
                }
            }
        };
        //c对象调用的b(), 则 this 指向c对象
        console.log(new factory().c.b()); //输出 a+
    
        let factory = function () {
            this.a = 'a';
            this.b = 'b';
            this.c =  {
                a: "a+",
                //es6中 this 指向构造函数的实例
                b: () => {
                    return this.a;
                }
            }
        };
        //this指向构造函数 new factory()的实例a
        console.log(new factory().c.b()); //输出 a
    

    2、块儿级作用域 >>

        var a;
        if(a){
            let a=20;    
        }else{
            let a=30;
        }
        //let声明的变量 只在 块{}内有效
        console.log(a); //输出undefined
    

    3、对数组的map、filter、reduce方法 >>

        let data = [5, 10, 15, 20];
        let rs = data
            .map(value => value * 2)
            .filter(value => value >= 20)
            .reduce((accumulator, currentValue) => accumulator + currentValue);
        //reduce为数组的累加器, 从左到右逐个累加, 返回总值
        console.log(rs); //输出90
    

    相关文章

      网友评论

          本文标题:几道小题

          本文链接:https://www.haomeiwen.com/subject/zqfghktx.html