zhufengnodejs / 201508ajax

201508aja预习课
MIT License
1 stars 33 forks source link

10.自定义一个惰性函数 #13

Open zhufengnodejs opened 8 years ago

PearlSong commented 8 years ago
var Max1=function(){
    var str="aaaaaaaaaaaaaaaaa"
    return str;
}
var Max2=function(){
    var str="bbbbbbbbbbbbbbbbbbbb"
    return str;
}
var Max3=function(){
    var str="cccccccccc"
    return str;
}

function getMax(){
    var fns=[Max1,Max2,Max3];
    var max=fns[0](),maxFn=fns[0];
    for(var i=1;i<fns.length;i++){
        var val=fns[i]();
        if(val.length>max.length){
            max=val;
            maxFn=fns[i];
        }
    }
    getMax=maxFn;
    return max;
}

console.log(getMax().length);
console.log(getMax());

20
bbbbbbbbbbbbbbbbbbbb
xingweiyan commented 8 years ago
var Max1 =function(){
    return 1
};
var Max2 =function(){
    return 2
};
var Max3 =function(){
    return 3
};

function getMax(){
    console.log("1111111");
    var fns =[Max1,Max2,Max3];
    var max =fns[0]();
    var maxFn =fns[0];
    for(var i=1;i<fns.length;i++){
        if(fns[i]()>max){
            max=fns[i]();
            maxFn =fns[i];
        }
    }
    getMax=maxFn;
    return max;
}
console.log(getMax());
console.log(getMax());
da-panggui commented 8 years ago
var min1 = function(){
    return 3;
}
var min2= function(){
    return 5;
}
var min3 = function(){
    return 7;
}

function getMin(){
    console.log('exec');
    var fns = [min1,min2,min3];
    var min=fns[0](),minFn = fns[0];
    for(var i=1;i<fns.length;i++){
        var val = fns[i]();
        if(val<min){
            min = val;
            minFn = fns[i];
        }
    }
    getMin = minFn;
    return min;
}

console.log(getMin());
evinma commented 8 years ago

··· var max1=function(){ return 1; }; var max2=function(){ return 2; }; var max3=function(){ return 3; }; function getMax(){ var ary=[max1,max2,max3]; var max=ary[0](),maxFn=ary[0]; for(var i=1;i<ary.length;i++){ var val=ary[i](); if(val>max){ max=val; maxFn=ary[i]; } } getMax=maxFn; return max; } console.log(getMax()); console.log(getMax()); ···

guozimo commented 8 years ago
var a=Math.max(3,4,5);
var b=Math.max(30,40,50);
var c=Math.max(300,400,500);
var Max1 = function(a){
 return a;
};
var Max2 = function(b){
    return b;
};
var Max3 = function(c){
    return c;
};

function getMax(){
    console.log('hahaha');
    var fns = [Max1,Max2,Max3];
    var max=fns[0](),maxFn = fns[0];
    for(var i=1;i<fns.length;i++){
        var val = fns[i]();
        if(val>max){
            max = val;
            maxFn = fns[i];
        }
    }
    getMax = maxFn;
    return max;
}

console.log(getMax());
console.log(getMax());
jingruia commented 8 years ago
function fn1(a,b){
    return a-b;
}
function fn2(a,b){
    return a+b;
}
function fn3(a,b){
    return a*b;
}
function Max(a,b){
var fn=[fn1,fn2,fn3];
    var max=fn[0](a,b),maxfn=fn[0];
    for(var i=0;i<fn.length;i++){
        var val=fn[i](a,b);
        if(val>max){
            max=val;
            maxfn=fn[i];

        }
    }
    Max=maxfn;
    return max;
}

console.log(Max(3,2));
console.log(Max(3,4));
console.log(Max(5,5));