알고리즘

(function(){})() 이 구조는??

Hot Dobby 2020. 11. 11. 20:06



IIFE(Im
mediately-invoked function expression: 즉시 작동하는 함수식)라는 구문입니다. 코드의 충돌을 방지하고 따로 함수 실행 구문을 안 써도 바로 함수를 실행할 수 있습니다! 

 

let allAnagrams = function (string) {


var uniqueOutput = {};

// 객체를 설정하고

//IIFE의 구조로 괄호 안에 있는 함수를 바로 실행!

(function anagram(ana, str) {

if (str === '') {

uniqueOutput[ana] = 1;

}



for (var i = 0; i < str.length; i++) {

anagram(ana + str[i], str.slice(0, i) + str.slice(i + 1));

}

})('', string);

//여기 뒤에 오는 빈스트링과 스트링인자가 함수의 매개변수로 들어간다.

return Object.keys(uniqueOutput);

};