문자에 .을 붙이면

20.01.05 12:39 작성 조회수 150

0

따로 브라우저에 저장되있는 length같은 함수들(브라우저 개발자가 만든 여러 함수가 포함된 문자를 인식하는 객체)과

'안녕하세요'라는 '값'을 합치는건가요?

'안녕하세요'+문자객체 그렇게 이걸 객체로 만드는거고

문자 인식은 '  '로 할 것 같은데

와 이거를 음.. 아스키코드? 로..

아니 정말 궁금한게 이렇게 console.log처럼 개발자들이 만들어 놓은 함수는 도대체 어떻게 만드는 것인가요?

'  '를 어떻게 인식하게 할 지, 또 그 문자의 끝을 어떻게 인식하게 할 것인지 정말 상상이 안가요.

언어 개발자들은 어셈블리어 집합을 묶어서 기능과 함수들로 만들은거 같은데 혹시 간략하게나마라도 설명해주실 수 있나요?

그리고

var 문자객체 = {

repeat1: function repeat2(num){   }

}

이렇게 하면

문자객체.repeat1 이것은 repeat1을 불러와서 repeat1 속에 있는 repeat2 함수를 꺼내는건데

var 문자객체 = {

repeat1(num): function repeat2(num){   }

}

이런식으로 따로 인자자리를 마련해준것도 아닌데  문자객체.repeat1(num) 하면 어떻게 알아차리는지 궁금해요.

그리고 num같은 경우 뭐가와도 상관없다고 예전 강의 영상에서 들었던거 같은데, 이거를 var num이라고 이해해도 될까요? for문처럼 딱 쓰고 사라지는 변수 처럼요.

그리고 혹여나 제가 질문할 때 불편한 점이 있으신가요? 앞으로 더 많이 질문할텐데 불편하신 점이 있으시다면 그 점을 참고하고 싶어요.

인프라 분들께서 어떤 식으로 인센티브를 주시는지는 모르겠지만, 저에게 있어서 이거는 재능 기부기 때문에 불편하신 점을 참고하고 자주 질문하고 싶어요

답변 1

답변을 작성해보세요.

1

저도 내부가 어떻게 만들어졌는지는 모릅니다. 다만 C++ 언어로 되어있다는 것만 압니다. 사실 깊게 알 필요는 없습니다. 저도 모릅니다. 언어 만드는게 궁금하시면 컴파일러 공부해보시면 됩니다.

문자객체.repeat1은 그 값으로 대체해보시면 됩니다. 지금 문자객체.repeat1은 function repeat2(num) {}입니다. 문자객체.repeat1(num)하면 대체한 후에는 (function repeat2(num) {})(num)한 것과 마찬가지입니다.

a === b이기때문에

a() === b()입니다. (객체 메서드에서는 예외도 있을 수 있습니다)

num은 매개변수라서 num이든 n이든 number이든 상관없습니다.

질문 답변해서 저한테 오는 이익은 없지만 궁금하신 것 있으시면 시간날 때 답변드립니다.