JavaScript 함수 심층 분석

함수는 new 키워드로 생성할 수도 있습니다. 그리고 기능은 여러 가지 방법으로 할당할 수 있습니다. 함수 생성자라고 합니다. 기능 이것은 우리의 기능 생성자입니다.

⇒ 간단한 기능..

// Function define & defination..
function strToObj(str){
    let obj = new Object();

    for (let s of str){
        if (s !== ''){
            obj[s] = s;
        }
    }
    return obj;
}

// Invoking function with calling..
console.log(strToObj("Asad Anik"));


⇒ 함수를 구성합니다. 이 모드는 런타임에서 기능을 작동하고 선언하는 데 아주 좋습니다😎. 그리고 Runtime은 이를 정상적인 기능으로 만듭니다. 런타임 함수라고도 합니다.

→ Object를 생성하거나 Class의 Constructor 메소드를 호출하는 것과 같은 new 키워드와 유사한 기능.

→ 구문 ⇒ 새 함수(인수, 본문);

// Actual function in JavaScript Behid the scense..
const strToObj = new Function(
    'str',
    `let obj = new Object();

    for (let s of str){
        if (s !== ''){
            obj[s] = s
        }
    }
    return obj;`
);

console.log(strToObj("Asad Anik"));


→ 다중 매개변수 사용.

⇒ 문법 — new Function(Argument1, Argument2, ….., Body);

// Multiple arguments..
const mySum = new Function(
    'a',
    'b',
    `
        const sum = a + b;
        console.log(sum);
    `
);

// Calling & Invoking..
mySum(20, 10);


→ 이런 식으로 코딩할 수도 있습니다.

// Take all data of function into an object.
const fData = {
    params: ['num1', 'num2'],
    body: ['const sum = num1 + num2', 'return sum']
};

// Bring body array to string body..
const fBody = fData.body.reduce((acc, cur) => {
    acc += cur + ';';
    return acc;
}, '');

// Calling Function Constructor..
const myOwnFunc = new Function(...fData.params, fBody);
console.log(myOwnFunc(20, 10));


다중 작업 생성자 함수.




// Mutiple Operations Constructor Function..
const Operations = [
    {
        args: [10, 20],
        params: ['num1', 'num2'],
        body: `console.log("Operation 1:", num1 + num2)`
    },
    {
        args: [10, 20],
        params: ['num1', 'num2'],
        body: `console.log("Operation 2:", num1 - num2)`
    },
    {
        args: [10, 20],
        params: ['num1', 'num2'],
        body: `console.log("Operation 3:", num1 * num2)`
    },
    {
        args: [10, 20],
        params: ['num1', 'num2'],
        body: `console.log("Operation 4:", num1 / num2)`
    },
];

// Calling Stack..
Operations.forEach((operation) => {
    const fn = new Function(...operation.params, operation.body);
    fn(...operation.args);
});

좋은 웹페이지 즐겨찾기