이 글은 주로 JavaScript 객체 지향 프로그래밍에 대한 관련 정보를 보여줍니다. 도움이 필요한 친구들이 참고할 수 있습니다.
ECMA-262는 객체를 다음과 같이 정의합니다. "속성에 기본 값, 객체 또는 기능이 포함될 수 있는 순서가 지정되지 않은 속성의 모음"
객체를 이해하는 가장 쉬운 방법은 객체 인스턴스를 생성하는 것입니다. , 속성과 메소드를 추가하세요
var person = new Object(); person.name = "Xulei"; person.age = "23"; person.job = "前端工程师"; person.sayName = function () { alert(this.name); }
다음과 같이 작성할 수도 있습니다
var person = { name: "xulei", age: 23, job: "前端工程", sayName: function () { alert(this.name) } }
속성 유형: 데이터 속성 및 해당 속성에 액세스
1. 데이터 속성에는 해당 동작을 설명하는 4가지 특성이 있습니다.
[구성 가능]: 삭제를 통해 속성을 재정의할 수 있는지 여부를 나타냅니다. 수정 가능 여부 속성의 특성 또는 속성을 접근자 속성으로 수정할 수 있는지 여부, 기본값은 true입니다.
[Enumerable]: for-in을 통해 속성을 반환할 수 있는지 여부를 나타냅니다. 값은 true입니다.
[쓰기 가능]: for-in을 통해 속성을 반환할 수 있는지 여부를 나타내며, 기본값은 true입니다.
[값]: 포함합니다. 이 속성의 데이터 값입니다. 기본값은 정의되지 않습니다.
var person = { name: "xulei" }
여기서 person 객체가 생성되고 값은 "xulei"입니다.
속성의 기본 특성을 수정하려면 ECMAScript5의 Object.defineProperty( 속성 위치, 속성의 이름, 설명자 개체)
설명자 개체는 구성 가능, 열거 가능, 쓰기 가능, 값이어야 합니다
var peron = {} Object.defineProperty(peron, "name", { writable: false,//属性不能被修改 value: "徐磊-xulei" }); alert(peron.name);//徐磊-xulei peron.name = "徐磊"; alert(peron.name);//徐磊-xulei
위 작업은 비엄격 모드 할당 작업에서 무시되며, 엄격 모드 예외가 발생합니다
속성이 구성 불가능으로 정의되면 다시 구성 가능으로 변경할 수 없습니다.
대부분의 경우 Object.defineProperty() 메서드에서 제공하는 이러한 고급 기능을 활용할 필요는 없습니다. 하지만 자바스크립트를 이해하는 데는 매우 유용합니다.
IE8에서는 이 방법을 사용하지 않는 것이 좋습니다.
2. 해당 속성에 액세스하면 4가지 특성이 있습니다.
[구성 가능]: 속성을 재정의하기 위해 삭제하여 속성을 삭제할 수 있는지 여부, 속성의 특성을 수정할 수 있는지 여부를 나타냅니다. 또는 속성을 변경할 수 있는지 여부 접근자 속성으로 수정, 기본값은 true입니다.
[Enumerable]: for-in을 통해 속성을 반환할 수 있는지 여부를 나타냅니다. 기본값은 true입니다. 읽을 때 호출되는 함수
[Set]: 속성을 쓸 때 호출되는 함수입니다.
JavaScript 비디오 튜토리얼을 방문하세요.