JavaScript 디자인 패턴 시리즈 4: 프로토타입 패턴

不言
풀어 주다: 2018-04-02 14:02:40
원래의
1221명이 탐색했습니다.

이 글은 자바스크립트 디자인 패턴 시리즈 4: 프로토타입 패턴에 관한 글입니다. 관심있는 친구들은 한번 구경해보세요

이 시리즈의 코드는 GitHub 주소 자바스크립트 디자인 패턴 데모에 업로드되어 있습니다

프로토타입 패턴이란 무엇인가요

프로토타입 패턴(프로토타입 패턴): 일반인의 용어로 말하면 공유 프로토타입을 만들고 이러한 프로토타입을 복사하여 새로운 개체를 만드는 것을 의미합니다. 반복되는 개체를 만드는 데 사용되는 이러한 유형의 디자인 패턴은 개체를 만드는 데 좋은 선택을 제공하는 생성 패턴입니다.

프로토타입 패턴 구현

자바스크립트 고유의 프로토타입 상속 기능, 즉 다른 개체의 프로토타입 속성 값으로 개체를 생성하여 프로토타입 패턴을 구현할 수도 있습니다. ) 상속합니다.

// 因为不是构造函数,所以不用大写
var someCar = {
    drive: function () { },
    name: '马自达 3'
};

// 使用Object.create创建一个新车x
var anotherCar = Object.create(someCar);
anotherCar.name = '丰田佳美';
로그인 후 복사

Object.create() 메서드는 지정된 프로토타입 개체와 해당 속성을 사용하여 새 개체를 만듭니다.

var vehicle = {
    getModel: function () {
        console.log('车辆的模具是:' + this.model);
    }
};

var car = Object.create(vehicle, {
    'id': {
        value: MY_GLOBAL.nextId(),
        enumerable: true 
 },
    'model': {
        value: '福特',
        enumerable: true
    }
});
로그인 후 복사

Object.create를 직접 사용하는 대신 프로토타입 패턴을 직접 구현하고 싶다면. 이를 달성하려면 다음 코드를 사용할 수 있습니다.

var vehiclePrototype = {
    init: function (carModel) {
        this.model = carModel;
    },
    getModel: function () {
        console.log('车辆模具是:' + this.model);
    }
};


function vehicle(model) {
    function F() { };
    F.prototype = vehiclePrototype;

    var f = new F();

    f.init(model);
    return f;
}

var car = vehicle('福特Escort');
car.getModel();
로그인 후 복사

요약:

프로토타입 모드는 공유 프로토타입을 생성하고, 이 프로토타입을 복사하여 새로운 클래스를 생성하는 모드로, 중복 객체 생성 및 성능 향상에 사용됩니다.

톰 아저씨의 블로그 디자인 패턴의 프로토타입 패턴에서 참조됨

관련 권장 사항:

JavaScript 디자인 패턴 시리즈 1: 팩토리 패턴

JavaScript 디자인 패턴 시리즈 2: 싱글턴 패턴

JavaScript 디자인 패턴 시리즈 3: 빌더 모드

위 내용은 JavaScript 디자인 패턴 시리즈 4: 프로토타입 패턴의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿