자바스크립트 책으로 공부하다가 궁금한게 생겨서요...
책에 js에는 클래스라는 개념은 없고 다른 객체지향언어에서는 클래스라는 개념이 제공되는데
객체를 클래스로부터 찍어내면 객체는 자기만의 데이터를 갖게 되지만 메소드는 클래스에 정의된 메소드를 서로 공유하게 된다
라고 되어있는데 여기서 말하는 데이터는 아마 멤버 변수 일거고.. 메소드는 멤버 함수 말하는거일텐데
궁금한게 객체 생성하면 객체마다 각각 멤버 변수랑 함수를 가지고 있는것 아닌가요?
변수만 각각가지고 함수는 공유하는 형태인가요? 스태틱 함수가 그런 공유하는 개념 아닌가요?
그래서 자바스크립트에서는 프로토타입이라는걸 사용해서 클래스의 함수처럼 여러객체가 공유하는 메소드를 정의할수 있다고 되어있는데..
다른 언어에서 함수가 객체 별로 메소드가 생성되는게 아니라 딱하나만 생성되고 공유되는 방식인가요?
멤버 변수나 함수는 접근 한정자 private protected public 에 따라 다르다. union 유니언 같은 공용함수나 변수에 있는 것 같다 c언어에 웹페이지에서 내에서 작동하는 로컬 변수 Area Variable 도 있고, (≒local Variable)
만들어야 생긴다. 보통 getter/setter로 많이든 접근 한다. 단 C# 에는 [SerializeField] 같은 직렬화 필드나, 프로퍼티 같은 것도 보인다. 외부에서 접근 가능한...
public 일 필요는 없는데, 적절하게 외부에서 접근 가능한거는 get으로 오픈해주고, 아닌 거는 내부적으로 스크립트로 body onload 로 스크립트를 미리 Awake 나 Start 함수처럼 C# 의 유니티와 비슷한 기능처럼 이런 것 도 있겠다.
body태그 footer
swap 되는 변수가 아닌 getter setter내의 변수는 local 변수다.
한번 사용하고 사라지는 변수 주소값이\
getter/setter
챗티피셜 언어에 관계없이 객체가 달라도 멤버함수는 동일한 함수코드를 사용함