>  기사  >  웹 프론트엔드  >  JavaScript_javascript 기술로 클래스/객체를 생성하는 여러 방법 요약

JavaScript_javascript 기술로 클래스/객체를 생성하는 여러 방법 요약

WBOY
WBOY원래의
2016-05-16 17:11:50988검색

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.