JS에서 객체 생성(객체 생성)은 우리가 흔히 말하는 것처럼 정확히 클래스 객체 생성이 아닙니다. JS에서 객체를 생성하고 객체에 액세스하는 것은 매우 유연합니다.
JS 객체는 변수 이름을 통해 저장하고 액세스할 수 있는 복합 유형입니다. 다르게 말하면 객체는 순서가 지정되지 않은 속성 컬렉션입니다. 컬렉션의 각 항목은 이름과 값으로 구성됩니다. 이상하게 들리지 않나요? HASH 테이블, 사전, 키/값 쌍처럼 자주 들리나요? 값 유형은 내장 유형(예: 숫자, 문자열) 또는 객체일 수 있습니다.
1. 한 쌍의 중괄호로 둘러싸여 있습니다.
다음과 같이 코드 코드를 복사합니다.
var 비어있는Obj = {};
var myObj =
{
'id': 1, //속성 이름은 따옴표로 묶이고 속성은 쉼표로 구분됩니다.
'이름': '내 이름'
};
//var m = new myObj(); //지원되지 않음
위의 코드와 마찬가지로 단순히 객체를 선언하는 것이므로 클래스 객체를 인스턴스화하는 것처럼 new 작업을 사용할 수 없습니다. 부분. 이로 인해 객체 재사용이 크게 제한됩니다. 생성한 객체에 복사본이 하나만 필요한 경우가 아니면 다른 방법을 사용하여 객체를 생성하는 것이 좋습니다.
객체의 속성과 메서드에 액세스하는 방법을 살펴보겠습니다.
다음과 같이 코드 코드를 복사합니다.
var myObj =
{
'ID': 1,
'재미': 함수() {
document.writeln(this.id + '-' + this.name);//"object.property" 모드에서 액세스
},
'이름': 'myObj',
'재미1': 함수() {
document.writeln(this['id'] + '+' + this['name']);//컬렉션 모드에서 액세스
}
};
myObj.fun();
myObj.fun1();
// 결과
// 1-myObj 1+myObj
2. function 키워드를 사용하여 클래스 시뮬레이션
함수에서 이를 사용하여 현재 객체를 참조하고, 값을 할당하여 속성을 선언합니다. var를 사용하여 변수를 선언하면 해당 변수는 지역 변수가 되며 클래스 정의에서만 호출할 수 있습니다.
다음과 같이 코드 코드를 복사합니다.
함수 myClass() {
this.id = 5;
this.name = 'myclass';
this.getName = 함수() {
this.name을 반환합니다.
}
}
var my = new myClass();
경고(my.id);
경고(my.getName());
// 결과
// 5
//myclass
3. 함수 본문에 객체를 생성하고 해당 속성을 선언한 후 반환합니다.
함수 본문에서 객체를 생성하려면 첫 번째 지점에서 메서드를 사용하거나 new Object()를 먼저 사용한 다음 각 속성에 값을 할당할 수 있습니다.
그러나 VS2008 SP1에서는 이러한 방식으로 생성된 개체에 스마트 프롬프트가 없습니다.
다음과 같이 코드 코드를 복사합니다.
함수 myClass() {
변수 객체 =
{
'ID':2,
'이름':'내클래스'
};
반환 객체;
}
함수 _myClass() {
var obj = 새로운 객체();
obj.id = 1;
obj.name = '_myclass';
반환 객체;
}
var my = new myClass();
var _my = 새로운 _myClass();
경고(my.id);
경고(내.이름);
경고(_my.id);
경고(_my.name);
// 결과
// 2
//myclass
// 1
// _myclass