devWonny 2022. 1. 12. 07:36
function multi(x,y){
    console.log(arguments);
    return x*y;
}

multi();
multi(1);
multi(2,3);
multi(2,3,4);

 

 

 

 

 

Symbol(Symbol.iterator)

multi(2,3,4);
Arguments(3) [2, 3, 4, callee: ƒ, Symbol(Symbol.iterator): ƒ]
        0: 2
        1: 3
        2: 4
callee: ƒ multi(x,y)
        arguments: null
        caller: null
        length: 2
        name: "multi"
prototype: {constructor: ƒ}
        [[FunctionLocation]]: VM240:1
        [[Prototype]]: ƒ ()
        [[Scopes]]: Scopes[1]
        length: 3
Symbol(Symbol.iterator): ƒ values()
        length: 0
        name: "values"
        arguments: (...)
        caller: (...)
[[Prototype]]: Object
        constructor: ƒ Object()
        hasOwnProperty: ƒ hasOwnProperty()
        isPrototypeOf: ƒ isPrototypeOf()
        propertyIsEnumerable: ƒ propertyIsEnumerable()
        toLocaleString: ƒ toLocaleString()
        toString: ƒ toString()
        valueOf: ƒ valueOf()
        __defineGetter__: ƒ __defineGetter__()
        __defineSetter__: ƒ __defineSetter__()
        __lookupGetter__: ƒ __lookupGetter__()
        __lookupSetter__: ƒ __lookupSetter__()
        __proto__: (...)
        get __proto__: ƒ __proto__()
        set __proto__: ƒ __proto__()

function multi(x,y){
    console.dir(arguments);
    let iterator = arguments[Symbol.iterator]();
    console.dir(iterator);

    console.log(iterator.next());
    console.log(iterator.next());
    console.log(iterator.next());
    console.log(iterator.next());

    return x*y;
}

multi(1,2,3,4,5);