JavaScript 객체의 사용법

巴扎黑
풀어 주다: 2016-12-06 09:57:49
원래의
1126명이 탐색했습니다.

소개: JavaScript는 프로토타입 메커니즘을 통해 상속을 구현하고 "클로저" 및 기타 방법을 통해 캡슐화를 구현하는 객체 지향 언어입니다. 이 기사에서는 프로토타입 체인, 참조, 리플렉션, 속성 순회 및 기타 기능과 같은 JavaScript 개체의 특수 기능에 대해 설명합니다.
1. 객체 생성
JavaScript는 객체를 생성하는 매우 직관적인 방법을 제공합니다.
var emptyObject = {}
var person = {
name: 'harttle',
age: 24
};
동등함:
var xx = new Object();
xx.name = 'hartle'
xx.age = 24;
속성은 다음 두 가지 구문을 통해 액세스할 수 있습니다:
person.age
person['age']
속성 이름이 없으면 JavaScript는 프로토타입 체인을 따라 검색합니다. 할당은 속성을 업데이트하거나 생성할 수 있으며, person.age 삭제를 통해 속성을 삭제할 수 있습니다.
정의되지 않은 속성을 가져오면 TypeError가 발생하며, 이는 일반적으로 &&로 해결됩니다.
// person.girl === undefine
person.girl.name; // undefine
3 . 프로토타입
JavaScript의 프로토타입 상속 방법은 다소 번거롭습니다. ES6에서는 Object.create 메서드를 제공하므로 프로토타입 상속이 더욱 간단해집니다.
구현은 대략 다음과 같습니다.
if (typeof Object.create !== 'function') {
Object.create = function (o) {
var F = function () { } ;
F.prototype = o;
return new F();
}
var obj = Object.create(proto); JavaScript는 현재 객체에 해당하는 속성도 생성/삭제합니다. 프로토타입의 속성은 영향을 받지 않습니다.
온라인에서 person.age = undefine을 전달하여 속성을 삭제하는 방법은 실제로 값이 정의되지 않은 속성을 생성하는 것과 동일합니다. delete person.age는 마치 해당 속성이 선언되지 않은 것처럼 실제로 속성을 삭제합니다.
예:
var prot = { name: 'harttle' };
// prot를 프로토타입으로 사용하여 p 생성
var p = Object.create(prot)
delete p .name ; .name === 'harttle', 프로토타입 속성
undef는 undef라는 하나의 값만 갖는 기본 데이터 유형에 속합니다.
4. 객체 참조
JavaScript의 객체는 참조로 전달되며 복사되지 않습니다.
var a = b = {}
a.name = 'harttle'
b .name === 'harttle' // true
프로토타입을 통해 상속할 때 프로토타입도 참조로 프로토타입 체인에 들어가고 프로토타입 속성은 복사되지 않습니다.
var prot = {girl: {name : 'alice'}};
var p1 = Object.create(prot);
var p2 = Object.create(prot);
p1.girl.name = 'fuck'; girl.name === 'fuck'
프로토타입 관계는 역동적인 관계임을 알 수 있습니다.
5. 반사
JavaScript는 런타임에 유형 정보를 얻는 데 사용할 수 있습니다.
typeof p.age // 'number'
typeof p.name // 'string'
typeof p.toString // 'function', from 프로토타입: Object.prototype
typeof p.wing // 'undefine'
물론 typeof는 기능이 제한되어 있으며 기본 데이터 유형만 확인할 수 있습니다. 객체지향 디자인을 지원하려면 좀 더 복잡한 유형 판단 메커니즘이 필요합니다. JavaScript 유형을 확인하는 방법을 참조하세요. 기사 하나.
6. 속성 탐색
for in을 통해 객체 속성(프로토타입 속성 포함)을 탐색할 수 있습니다.
var person = {name: 'harttle', age: 24}
for(var prop in person ){
console.log(p[prop);
}
현재 객체의 속성만 가져오려면 hasOwnProperty:
for(var prop in 직접 확인)를 통해 판단할 수 있습니다. ){
if (person.hasOwnProperty(prop)){
console.log(p[prop);
}
}
for in은 속성의 순서를 보장하지 않습니다. 순서를 보장해야 하는 경우 대신 Array를 사용할 수 있습니다. 또한 프로토타입의 속성을 판단하는 것을 방지합니다.
7. 전역 변수를 피하세요
전역 변수에 대한 의존도는 JavaScript의 디자인 결함 중 하나입니다. 전역 변수 사용을 방지하는 방법은 여러 가지가 있으며, 그 중 가장 간단한 방법은 프로젝트에 대한 전역 변수를 정의하고 하나의 전역 변수만 정의하는 것입니다.
var APP = {}
APP.foo = 'xxx' ;
APP.bar = 'xxx';
이렇게 하면 얼핏 보면 APP.foo가 전역 변수이기 때문에 코드를 더 쉽게 유지 관리할 수 있습니다.

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!