-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
강의자입니다. 좋은 질문인데 답변을 작성하는 동안에 질문이 삭제되어 질문과 함께 작성합니다.
21.05.16 21:41 작성 조회수 183
1
안녕하세요. 질문이 있어 글을 남깁니다.
Number()라는 함수가 Number라는 오브젝트에 있다고 이해 했는데요. 오브젝트 내부에 있는 함수를 호출하려면 Number.Number( ) 처럼 해야 하는 거 아닌가요? ㅜㅜ
밑에 있는 예로 들면 func()만 입력하면 안 되고 obj.func()로 입력해야 하는 것처럼요.
ex)
==
var obj = {func : function( ) {console.log('hi')};
obj.func();//hi
===
Number.를 붙이지 않고 바로 Number('123') 이런식으로 함수를 호출할 수 있는 이유가 궁금합니다.
------------ 답글 ------------
좋은 질문입니다.
parseInt() 형태로 작성하는 것이 문법이듯이 Number("123") 형태도 문법입니다.
Number.number("123")처럼 정형적인 형태로 처음부터 설계했어야 한다고 생각합니다. 설계 실수라고 할 수는 없지만, 실수에 가까우며 (오브젝트.함수, 인스턴스.메소드) 형태로 호출하는 관점에서 보면 일관성이 떨어집니다.
Number.parseInt(), Number.isNaN() 등을 새로 만든 것은 이런 것을 염두에 둔 것으로 생각합니다.
이런 것을 추가하듯이 새로운 ECMAScript 에디션에 Number.number(), String.string() 형태가 추가되었으면 좋겠다는 생각이 듭니다.
이제와서 바꿀 수 없으므로 문법이라고 생각하는 것이 나을 것 같습니다.
답변을 작성해보세요.
0
답변 1