Frudy
4k
2019-11-27 19:37:06
4
156

Javascript function parameter type(?)을 보는방법이 뭘까요?


저는 Array.prototype.slice() 사용법도 알고,

다른 함수들 사용법도 알고있습니다만,


MDN에서 검색하면..


이렇게 나오고있습니다.


[begin[, end]] 라는 이 표현이..

[message[, fileName[, lineNumber]]] 이 표현이.. 어렵습니다.

이걸 제가 어떻게 해석해야하는지... ㅜㅜ


그에비해 Java 공식문서는..


아.. 메소드는 2개가 오버로딩되어있고,

parameter type은 하나짜리로 쓰면 beginIndex만 필요하고

두개짜리로 쓰면 (이하생략) 이렇게 해석이 되거든요.


물론 Javascript의 function은, parameter를 선언되지않은 대로 호출해도

호출은 된다는걸 알고는있습니다.

function add(a, b) 이렇게 선언해도 add(); 아니면 add(1, 2, 3); 이렇게 호출해도 되는건 알지만..


이 개념이랑 [message[, fileName[, lineNumber]]] 이런 표현이랑 관련이 있을지도 모르겠고..

저런 표현을 어떻게 해석해야할까요?

0
0
  • 답변 4

  • jslovers
    1k
    2019-11-28 01:05:36

    해당 문서에 설명이 다 있습니다. 

    0
  • Frudy
    4k
    2019-11-28 02:28:21 작성 2019-11-28 03:16:22 수정됨

    해당 매개변수에 따린

    어떻게작동되는지는 문서에 있고

    저도 알고있는 편이에요.


    하지만... 제가 모르겠는건

    저 매개변수 표현방법이에요.


    function(a, b)가 아닌

    function([a[, b]])이렇게 쓰는데

    이걸 어떻게 해석해야하는지 모르겠어요.


    다른 언어라면

    (int a, int b) 이런식으루 하겠죠???


    타입이없는 자바스크립트라고 해서

    왜 저렇게표현하는지랑 저 표현의 의미를...

    알고는싶어요.

    0
  • dohyeong
    717
    2019-11-28 04:21:36
    []는 optional이라는 의미입니다. 일상적으로 더러더러 쓰이는 표현이긴한데, 다른 언어는 optional parameter를 표현할 문법이 있으니 안 쓰이는것 뿐입니다.

    arr.slice([begin[, end]])는
    [begin[, end]]를 모두 생략하고 arr.slice()로 써도 되고, [, end]를 생략하고 arr.slice(begin)으로 써도 되고 모두 넣어서 arr.slice(begin, end)로 써도 된다는 말이죠.
    그리고 좀 더 생각해보시면 arr.slice(, end)는 안된다는 것도 알 수 있을겁니다.

    연습문제. f([a, b])에서 f(a)는 가능할까요 아닐까요? :)
    0
  • Frudy
    4k
    2019-11-28 21:51:00

    우와... 무슨뜻인지 하나도 모르겠어요. ^^;

    그런데 두고두고 보면서 되새기면

    분명 이해될거같아요.


    감사합니다....!

    정말 알고싶었는데 실마리가 생겼어요.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.