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