• JavaScript随笔之——函数用法


    1、reduce函数用法:  

    $(function(){
       // arrowMouseOver();
        Array.prototype.reduce=null;  //将内置reduce函数设置为null
        var eleResult=document.getElementById("result");
    
        console.log=function(result){
            var text=document.createTextNode(result);
            var br=document.createElement("br");
            //var name=document.createAttribute("data-name");
            eleResult.appendChild(text);
            eleResult.appendChild(br);
            //br.setAttribute(name,"zhu");
        };
        if(typeof Array.prototype.reduce!="function"){
            Array.prototype.reduce=function(callback,initialValue){   //自定义reduce函数
                var previous=initialValue,k= 0,length=this.length;
                if(typeof initialValue==="undefined"){   //如果没传入初始值,则previous等于数组的第一个元素
                    previous=this[0];
                    k=1;
                }
                if(typeof callback==="function"){
                    for(k;k<length;k++){
                        this.hasOwnProperty(k)&&(previous=callback(previous,this[k],this))
                    }
                }
                return previous;
            }
        }
        var sum=[1,2,3,4].reduce(function(previous,current,array){
            return previous+current;
        });
        console.log(sum);//10
        var matrix=[
            [1,2],[3,4],[5,6]
        ];
        var flattn=matrix.reduce(function(previous,current){
           return previous.concat(current);
        });
        console.log(flattn);// [1, 2, 3, 4, 5, 6]
    });

    注:reduce()函数,实现对数组的累加功能,需要传递一个callback函数和初始值initialValue,

    假设callback函数它有个传入参数,prev和next,index和array。prev和next你是必须要了解的。

    一般来讲prev是从数组中第一个元素开始的,next是第二个元素。

    但是当你传入初始值(initialValue)后,第一个prev将是initivalValue,next将是数组中的第一个元素,如果没传入初始值,则表示取数组的第一个元素作为初始值。

    function Person(name,age){
        this.name=name;
        this.age=age;
        alert("My name is "+arguments[0]+", age is "+ arguments[1]);
        this.sayHello=function(){
            alert("Hello");
        }
    }
    function Student(name,age,stuID,classID){
        Person.apply(this,arguments);
        this.studentID=stuID;
        this.classID=classID;
    }
    var person1=new Person("zhu",23);
    var student1=new Student("stu1",12,1001,1);
    注:Student对象继承Person对象,只需要在Student对象里面加一个,Person.apply(this,arguments)即可,不过只有在实例化时,才能看到效果。
  • 相关阅读:
    JDBC事务管理
    JDBC常见操作
    Java集合之List接口
    Nginx+Keepalived+Lvs实现双机热备
    Nginx+Consul+Upsync实现动态负载均衡
    DNS域名解析概念
    WPF中实现两个窗口之间传值
    C# 重写(override)和覆盖(new)
    C# DateTime.Now函数
    WPF中在后台实现控件样式
  • 原文地址:https://www.cnblogs.com/1017283242zhu/p/4573054.html
Copyright © 2020-2023  润新知