JavaScript에는 클래스가 없기 때문에 객체 지향 언어가 아니라고 말하는 사람들도 있습니다. 예, JavaScript에는 실제로 클래스가 없지만 JavaScript는 객체 지향 언어입니다. JavaScript에는 객체만 있고 객체는 클래스의 인스턴스가 아닌 객체입니다.
대부분의 객체지향 언어의 객체는 클래스를 기반으로 하기 때문에 사람들은 클래스 인스턴스와 객체의 개념을 혼동하는 경우가 많습니다. 객체는 클래스의 인스턴스입니다. 이는 대부분의 언어에서 사실이지만 JavaScript에서는 그렇지 않습니다. JavaScript의 객체는 프로토타입 기반입니다.
생성 및 액세스
JavaScript의 객체는 실제로 속성으로 구성된 연관 배열입니다. 속성은 이름과 값으로 구성됩니다. 값의 유형은 모든 데이터 유형일 수도 있고 함수 또는 기타 객체일 수도 있습니다. JavaScript에는 함수형 프로그래밍의 특성이 있으므로 함수도 변수 유형이며 대부분의 경우 일반 데이터 유형과 구별할 필요가 없습니다.
JavaScript에서는 다음을 사용하여 간단한 개체를 만들 수 있습니다.
var foo = {}; foo.prop_1 = 'bar'; foo.prop_2 = false; foo.prop_3 = function() { return 'hello world'; } console.log(foo.prop_3());
위 코드에서는 var foo = {}를 통해 객체를 생성하고 해당 참조를 foo에 할당합니다.
foo.prop1을 통해 해당 멤버를 가져오고 값을 할당합니다. 여기서 {}는 객체 리터럴의 표현 방법이거나 var foo = new Object()를 사용하여 명시적으로 객체를 생성할 수 있습니다.
1. 연관 배열을 사용하여 객체 멤버에 액세스
연관 배열 패턴을 사용하여 객체를 생성할 수도 있습니다. 위 코드는 다음과 같이 수정됩니다.
var foo = {}; foo['prop1'] = 'bar'; foo['prop2'] = false; foo['prop3'] = function() { return 'hello world'; }
포함)
이 포인터)는 두 모드를 모두 사용할 수 있습니다. 연관 배열을 사용하면 객체의 속성 이름을 모를 때 변수를 연관 배열의 인덱스로 사용할 수 있다는 장점이 있습니다. 예:
var some_prop = 'prop2'; foo[some_prop] = false;
2. 객체 초기화를 사용하여 객체 생성
위 방법은 JavaScript 객체의 정의에 대한 이해를 돕기 위한 것입니다. 실제로 사용할 때는 다음과 같은 보다 간결하고 명확한 방법을 사용하겠습니다.
var foo = { 'prop1': 'bar', prop2: 'false', prop3: function (){ return 'hello world'; } };
위 내용은 JavaScript로 객체를 생성하고 접근하는 구현 방법입니다. 모든 분들의 학습에 도움이 되길 바랍니다.