p 550

수빈·2023년 2월 4일
0
const users = [
    {id:1,name:'a'},
    {id:2,name:'aa'},
    {id:3,name:'aaa'},
    {id:4,name:'aaaa'}
];

// 평범한 예제
console.log(users.findIndex(function(aValue) { 
    console.log(aValue); 
    return aValue.name === 'aaa' }));

// 콜백 함수
function Predicate(key, value) {
    return function(item) { 
        return item[key] === value;
    };
}

// item ??
console.log(users.findIndex(Predicate('name','aaa')));

// 뿅
console.log(users.findIndex(function Predicate(key, value) {
    return function(item) { 
        return item[key] === value;
    };
}));

// 엥
console.log(Predicate());
/**
function(item) { 
        return item[key] === value;
    };
**/

// 뾰로롱
//console.log(users.findIndex(Predicate('name','aaa')));
console.log(users.findIndex(function(item) { 
        return item[key] === value;
  		// Predicate('name','aaa')가 실행 되면서
        // key, value 인수로 전달되어 변수로 바뀐다.
        // key = 'name', value = 'aaa'
  		// item이 findIndex 함수의 인수가 된다.
    };
});

// 애초에 콘솔로 Predicate를 실행시킨 상태이므로 item = 요소값
// users.findIndex(Predicate());

클로저 미쳤다 미쳤어

재밌다

0개의 댓글