JS에는 객체를 생성하고 객체에 포함 된 속성 및 메소드를 작동시키는 몇 가지 모드가 있습니다.
일반적으로, 생성자 이름의 첫 글자는 대문자이며, 비 건조자 이름의 첫 번째 문자는 소문자입니다. 물론, 생성자와 일반적인 기능의 유일한 차이점은 호출 방식의 차이입니다. 따라서, 모든 함수를 새로 통과하는 한 생성자로 사용할 수 있습니다. 새로운 것을 통해 호출되지 않으면 일반적인 기능과 동일합니다.
이 패턴에 대한 이해에 대해 이야기하겠습니다.
공장 모드 : 일반 함수를 만들고, 함수에서 객체 객체를 만들고, 객체에 속성과 메소드를 추가하고, 값을 할당하고, 객체를 반환합니다. 객체 유형을 인식 할 수 없습니다.
생성자 모드 : 생성자를 만들고,이를 사용하여 값을 할당하고, 인스턴스가 생성 될 때마다 메소드가 한 번 생성되고 각 메소드는 동일한 명령을 실행하여 중복됩니다. 이 단점은이 방법을 지구 환경에 넣어서 수행 할 수 있지만,이 방법으로 캡슐화는 없습니다. 그러나 프로토 타입 모드를 통해 해결할 수 있습니다.
프로토 타입 패턴 : 각 기능에는 프로토 타입 속성이 있으며, 이는 포인터 인 기능으로 생성 된 모든 인스턴스가 공유하는 속성 및 메소드를 포함하는 객체를 가리키는 포인터입니다.
프로토 타입 객체, 생성자 및 인스턴스 간의 관계는 다음과 같습니다.
그림 : 1 : 생성자와 생성자에 의해 생성 된 인스턴스, 프로토 타입 속성은 생성자의 프로토 타입 객체를 가리 킵니다.
2 : 생성자의 프로토 타입 객체에는 생성자 속성이 있으며 이는 생성자를 가리 킵니다.
3 : 생성자의 프로토 타입 객체에 포함 된 모든 속성 및 방법은 생성자가 생성 한 모든 인스턴스에 의해 공유 될 수 있습니다.
객체 리터럴을 사용하여 프로토 타입 객체를 다시 작성한 후 생성자는 객체 생성자를 가리 킵니다. 다른 생성자를 가리키는 것이 필요한 경우 : 생성자 : person. 이러한 방식으로, 사람 프로토 타입 객체를 다시 작성하더라도 프로토 타입 객체의 생성자는 여전히 사람 생성자를 가리 킵니다.
인스턴스를 먼저 생성 할 때 : 속성이나 메소드를 직접 추가하면 인스턴스에 액세스 할 수 있습니다.
프로토 타입 객체가 다시 작성되면 생성자의 프로토 타입은 새로운 프로토 타입 객체를 가리키고, 이전에 생성 된 인스턴스의 프로토 타입은 원래 프로토 타입 객체를 가리키므로 인스턴스는 새 특성 또는 새 프로토 타입 객체의 새로운 방법에 액세스 할 수 없습니다.
프로토 타입 객체에는 공유 속성 및 메소드가 포함되어 있으므로 각 인스턴스에는이 정보가 있으므로 인스턴스간에 차이가 없으며 매개 변수를 전달할 수 없습니다. 각 인스턴스에는 공통 정보와 다른 정보가 있으므로 생성자 모드와 프로토 타입 모드의 조합을 사용할 수 있습니다.
생성자 모드와 프로토 타입 모드의 조합을 사용하십시오.
상태 프로토 타입 패턴 : 독립 생성자를 프로토 타입 객체와 결합하고 생성자의 프로토 타입을 초기화하며 메소드를 추가하십시오.
방법이 존재하지 않으면 프로토 타입 객체에 추가되며 프로토 타입이 초기화 된 경우에만 실행됩니다.
기생성 생성자 모드 : 공장 모드와 유사하게 차이점은 다음과 같습니다. 기생 생성자 모드는 생성자이며 인스턴스는 새로운 것을 통해 생성됩니다.
안정적인 생성자 패턴 : 공개 속성이 없으며 그 방법은이 객체를 참조하지 않습니다. 인스턴스를 생성 할 때 새로운 것이 사용되지 않습니다. 방법을 통해 속성 (예 : 들어오는 데이터)에 대한 액세스 만 수행됩니다.
위의 JavaScript Creation Objects의 여러 모드에 대한 소개는 내가 공유하는 모든 내용입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.