zoukankan      html  css  js  c++  java
  • 函数作为返回值

    //获取某个对象的类型是不是你传入的类型
    //[10,20,30]是不是"[object Array]"
    //type------是变量----是参数-----"[object Array]"
    //obj-----是变量-----是参数-----[10,20,30]
    function getFunc(type) {
    return function (obj) {
    return Object.prototype.toString.call(obj)===type;//判断这个对象的类型和传入的的类型是不是同一个类型
    }
    }
    var ff=getFunc("[object Array]");
    var result=ff([10,20,30]);
    console.log(result);//true

    var ff1=getFunc("[object object]");
    var dt=new Date();
    var result1=ff1(dt);
    console.log(result1);//false



    案例:
    排序:
    var arr=[1,3,5,7,9,2,4,6,8];
    //排序---函数作为参数使用,匿名函数作为sort方法的参数使用,那么此时匿名函数中有两个参数
    arr.sort(function (obj1,obj2) {
    if(obj1>obj2){
    return 1;
    }else if(obj1==obj2){
    return 0;
    }else {
    return -1;
    }
    });
    console.log(arr);


    var arr2=["bdef","abcd","bcde","acde"];
    arr2.sort(function (a,b) {
    if(a>b){
    return 1;
    }else if(a==b){
    return 0;
    }else {
    return -1;
    }
    });
    console.log(arr2);




    //三部电影,有名字,大小和时间
    function File(name,size,time) {
    this.name=name;
    this.size=size;
    this.time=time;
    }
    var f1=new File("jak.avi","400M","1996-12-12");
    var f2=new File("tak.avi","200M","2006-12-12");
    var f3=new File("xak.avi","600M","2016-12-12");
    var arr=[f1,f2,f3];
    function fn(attr) {
    //函数作为返回值
    return function getSort(obj1,obj2) {
    if(obj1[attr]>obj2[attr]){
    return 1;
    }else if(obj1[attr]==obj2[attr]){
    return 0;
    }else {
    return -1;
    }
    }
    }
    var ff=fn("name");//===============
    arr.sort(ff);
    for(var i=0;i<arr.length;i++){
    console.log(arr[i].name+"====="+arr[i].size+"====="+arr[i].time);
    }
  • 相关阅读:
    原型模式
    简单工厂模式与工厂方法模式
    监听器 Listener
    代理模式
    装饰模式
    软件设计的原则
    事务的特性和隔离级别
    JDBC事务(三)ThreadLocal绑定Connection
    JDBC事务(二)转账示例
    JDBC事务(一)
  • 原文地址:https://www.cnblogs.com/lujieting/p/10082448.html
Copyright © 2011-2022 走看看