이전 기사에서 JavaScript (i)의 객체 및 프로토 타입은 JavaScript의 객체 생성에서 일부 기본 작업을 언급했으며 다음에 계속 논의 할 것입니다.
하나의 공장 모델
객체를 만들려면 다음 코드를 사용할 수 있습니다.
var user = new Object (); // 새 연산자 user.name = 'Triangle Lake에서 인용'을 사용하여 객체를 만듭니다.; // 객체 user.age = 22; user.address = 'hubei wuhan'; alert (user.name + "" + user.age)에 속성을 추가합니다. // '삼각형 호수'에서 낭송 된 'Hubei Wuhan'으로 돌아갑니다.
이러한 방식으로 객체를 만드는 것은 간단하고 직관적이며 JavaScript에서 객체를 만드는 가장 기본적인 방법입니다. 그러나 이와 같은 문제가 있습니다. 여러 객체를 만들어야한다면 많은 중복 코드를 작성해야합니다. 예를 들어, 다른 객체 user1을 만들려면 위의 코드를 다시 작성해야합니다.이 코드는 실제 개발 프로세스에서 부적절합니다. 이런 식으로 객체가 너무 많으면 코드의 양이 크게 증가합니다.
이러한 문제를 해결하기 위해, 우리는 공장 패턴이라는 방법을 사용할 수 있습니다.이 방법은 많은 양의 중복 코드를 생성하는 객체를 인스턴스화하는 문제를 해결하는 것입니다.
함수 생성 (이름, age) {var obj = new Object (); obj.name = 이름; obj.age = 나이; obj.run = function () {return this.name + '' + this.age; }; return obj;} var obj1 = create ( 'zxc', 10); // 첫 번째 인스턴스 var obj2 = create ( 'cxz', 20); // 두 번째 인스턴스 alert (obj1.run ()); 알림 (obj1.run ());위의 코드에서 공장 패턴이 인스턴스화 중에 코드의 대규모 복제 문제를 해결하지만 또 다른 문제가 발생한다는 것을 알 수 있습니다. 즉, 문제를 식별하면 어떤 객체인지 알 수 없습니다. 예를 들어
경고 (OBJ1 유형); // Objectalert (obj1 인스턴스 객체); //진실
위의 코드는 Box1이 객체 객체임을 나타내지 만 어떤 개체가 생성되었는지 알 수 없습니다.
두 생성자 (건축 방법)
위의 문제를 해결하기 위해 생성자를 사용하여 객체를 만들 수 있습니다. 생성자와 일반 함수의 유일한 차이점은 호출 방법이 다르다는 것입니다. 그러나 생성자도 함수입니다.
기능 사용자 (이름, 나이) {// 생성자 모드 this.name = 이름; this.age = age; this.run = function () {return this.name + '' + this.age; };}개체를 만들 때 새 연산자를 사용하십시오.
var user1 = 새 사용자 ( 'zxc', 25); var user2 = 새 사용자 ( 'cxz', 22);
이제 user1 또는 user2가 사용자에 속하는지 여부를 감지 할 수 있습니다.
Alert (user1 instance of user); // true
생성자 방법을 사용하면 반복 된 인스턴스화 문제를 해결하고 객체 인식 문제를 해결한다는 것을 알 수 있습니다.
생성자를 사용할 때 실행 프로세스는 다음과 같습니다.
1. 새 생성자 ()를 실행할 때 배경은 새 개체 ()을 실행합니다.
2. 생성자를 새 개체로 범위로 범위.
3. 생성자 내부의 코드를 실행합니다.
4. 배경은 새 개체를 직접 반환합니다.
다음으로 생성자 내부의 기능 문제를 살펴 보겠습니다. 다음 진술을 실행하면 다음과 같습니다.
alert (user1.run == user2.run); // 결과는 false를 반환합니다
결과는 false를 반환하므로 메소드가 실제로 참조 주소임을 의미합니다. 여러 객체를 반복적으로 생성하면 각 객체의 메소드가 메모리에서 새로운 공간을 열어 더 많은 공간을 낭비하게됩니다. 이 문제를 해결하려면 인스턴스 속성 또는 방법의 공유를 사용해야합니다. 우리는 다음 기사 에서이 문제를 해결하는 것에 대해 계속 논의 할 것입니다.
위는 편집자 (ii)가 소개 한 JavaScript의 객체 및 프로토 타입입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!