써니소프트 카페의 러닝은빛님의 댓글을 발췌했습니다. 기본적인 자바스크립트의 특성입니다.
일단 자바스크립트는 '자바'와는 문법적으로 비슷한 부분도 좀 있지만 자바와는 아예 다른 언어입니다.
제 생각은 언어 차원에서 많은 라이브러리를 제공하는 루비, 자바와는 달리 자바스크립트는 기본적으로 제공되는 문법 자체가 굉장히 적습니다. 그래서 배우기는 좀 더 쉬울 수 있습니다.
하지만 큰 차이점이 있는데 바로 자바스크립트에서는 클래스라는 그 간단한 키워드 조차 없다는 겁니다. protected, private, public 같은 대표적인 정보은닉 관련 키워드 마저 없습니다. 사실상 함수(function)가 개념상의 끝입니다.
하지만 골 때리는 건 그 함수가 굉장히 유연하다는 겁니다. 어떻게 쓰는지에 따라 함수가 되기도 하고 모듈이 되기도 하고 클래스가 되기도 합니다. 그 유연한 함수 안에 새로운 함수를 정의할 수도 있고, 함수와 변수를 정의해서 클래스 개념처럼 쓸 수도 있습니다. 게다가 그렇게 만들어둔 것을 다른 함수가 상속 받을 수도 있습니다. 생성자 개념도 있어서 함수마다 다른 변수값을 지니게 할 수도 있습니다.