'_.partial'에 해당되는 글 1건

_.partial 함수

 : 함수의 인자를 일부분 지정 후, 함수 호출 시 인자를 추가적으로 지정하는 함수.

 

 

예제. 인자값을 모두 더하는 함수

// 인자값을 모두 더하는 함수 
function add(){
    var result = 0;
    for(var i =0; i < arguments.length; i++){
		// 인자값 확인
		console.log('arg['+i+']' + ' =>' + arguments[i]); 
        result +=arguments[i];
    }
    return result;
}

// add 함수의 첫번째 인자를 비워두고, 2번째 인자에는 3으로 채운다
var addTest = _.partial(add, _ , 3);

console.log("result = > " + addTest(2)); 
// arg[0] =>2
// arg[1] =>3
// result = > 5

// 최종적으로 인자값이 2, 3, 10, 100 
console.log("result = > " + addTest(2 , 10 , 100)); 
VM1073:6 arg[0] =>2
VM1073:6 arg[1] =>3
VM1073:6 arg[2] =>10
VM1073:6 arg[3] =>100
VM1252:1 result = > 115


예제. 

var student = {
    studnetName : "abc", 
    studentNumber : "20201000",
    studentPrint : _.partial(function(a, b){
        return a + this.studentNumber  + ", " + b + this.studnetName;
    } , "학번 : " , "이름 :")
};
console.log("student = > " + student.studentPrint());

var callStu = student.studentPrint.call({studnetName : "kukkuku" , studentNumber : "20191000"});
console.log("callStu = > " + callStu);

// 새로운 함수를 return
var bindStu = student.studentPrint.bind({studnetName : "zerotototo" , studentNumber : "201999999"});
console.log("bindStu = > " + bindStu());
// VM2322:8 student = > 학번 : 20201000, 이름 :abc
// VM2322:10 callStu = > 학번 : 20191000, 이름 :kukkuku
// VM2322:12 bindStu = > 학번 : 201999999, 이름 :zerotototo

블로그 이미지

미나미나미

,