_.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