클래스 static 멤버
안녕하세요!
클래스 static 멤버 관련해서 질문드립니다.
이전 프로토타입 강의에서 객체의 프로토타입에는 모든 데이터 타입에 적용될 수 있기 때문에 객체 전용 메서드를 정의할 수 없어서 예외적으로 객체 생성자 함수에 정의하였다는 것은 이해했습니다. 그런데, 배열의 경우는 왜 프로토타입에 메서드를 정의하고 배열 생성자 함수에 static methods와 static properties를 정의한건지 궁금합니다!
항상 좋은 강의 감사드립니다!
Answer 1
0
Object의 경우와 달리 배열 클래스의 static 멤버는 말그대로 'static'한 목적을 지닌 경우에 해당한다고 볼 수 있습니다.
예컨대 Array.isArray 메서드의 경우, 인자로 임의의 타입의 데이터를 넘기면 해당 인자가 배열인지 여부를 판단하여 true / false를 반환합니다. 이런 메서드를 배열의 prototype에 지정하는 건 의미가 없겠죠. 이미 배열인데 굳이 배열인지 아닌지를 판단할 이유가 없으니까요.
즉 인스턴스 자체가 '주체'가 되는게 합리적일 때는 prototype 메서드로 지정하지만, 인스턴스에 종속되는 것보다 클래스 자체를 주체로 삼는 것이 보다 합리적인 경우에는 static 메서드로 지정하는 것입니다.
인스턴스에서 prototype 프로퍼티에 직접 접근해야하는 이유
0
59
1
setTimeout 에서 this
0
81
1
2강부터 영상이 나오지 않습니다.
0
175
1
자바스크립트 주석에 이상한 점이 있어서 문의드립니다.
0
219
2
return 문 안에 여러 함수가 존재하는 것이 이해되지 않습니다.
1
259
1
실행컨텍스트와 스택프레임
2
567
1
프로토타입으로 상속할때 브릿지 사용 이유
0
320
1
호이스팅 관련 질문
1
335
1
책 66p. 예제 3-2 질문입니다.
0
356
1
강의 내용 10:58 캡슐화 질문입니다.
1
398
1
강의 내용 5:10 질문입니다.
1
422
2
전역 공간에서의 this
0
426
2
18:31 addEventListener의 this
1
480
1
outerEnvironmentReference 질문
1
372
1
실행 컨텍스트와 클로저에 대해 질문드립니다.
1
448
1
Object.prototype.constructor의 [[prototype]] ?
1
658
1
함수를 값으로 할당할 때
2
457
1
15:54 'ddd' 사라지는 오류?
4
375
1
프로토타입 getPrototypeOf(instance).constructor(n,a) 질문입니다.
1
404
1
기본형/가변형 질문입니당
0
333
0
선생님 그러면 섹션 0만 봐도 무방한가요!?
0
335
1
Hoisting과 environmentRecord에 관한 질문입니다.
1
291
1
안녕하세요, 데이터 변경 질문입니다.
0
328
1
선생님 class 상속파트에서 궁금한게 있습니다.
0
235
1

