>  기사  >  웹 프론트엔드  >  JavaScript 객체지향(미니멀리스트 접근 방식)_js 객체지향

JavaScript 객체지향(미니멀리스트 접근 방식)_js 객체지향

WBOY
WBOY원래의
2016-05-16 17:51:431193검색
미니멀리스트 접근 방식
네덜란드 프로그래머 Gabor de Mooij는 Object.create()보다 나은 새로운 방법을 제안했습니다. 그는 이 방법을 "미니멀리스트 접근 방식"이라고 불렀습니다. 제가 추천하는 방법이기도 합니다.
 3.1 Encapsulation
 이 방법은 이것과 프로토타입을 사용하지 않고, 코드 전개도 매우 간단해서 "미니멀리스트 방법"이라고 불리는 것 같습니다.
우선 "클래스"를 시뮬레이션하기 위해 객체를 사용하기도 합니다. 이 클래스에서 생성자 createNew()를 정의하여 인스턴스를 생성합니다.
코드 복사 코드는 다음과 같습니다.

var Cat = {
createNew: function () {
// 여기에 일부 코드
}
}

  그런 다음 createNew()에서 인스턴스 객체를 정의하고 이 인스턴스 객체를 반환 값으로 사용합니다. .
코드 복사 코드는 다음과 같습니다.

var Cat = {
createNew: function () {
var cat = {};
cat.name = "큰 고양이";
cat.makeSound = function (){ 경고 ("야옹야옹")
return cat;
}
};

사용 시 createNew() 메소드를 호출하여 인스턴스 객체를 가져옵니다.
코드 복사 코드는 다음과 같습니다.

var cat1 = Cat.createNew();
cat1.makeSound (); // Meow Meow Meow

이 방법의 장점은 이해하기 쉽고, 명확하고 우아한 구조를 가지며, 전통적인 "객체"에 부합한다는 것입니다. 프로그래밍 지향' 구조로 되어 있어 쉽게 배포할 수 있습니다. 아래 특징이 있습니다.
 3.2 상속
  한 클래스가 다른 클래스를 상속받도록 하는 것은 매우 편리합니다. 전자의 createNew() 메소드에서 후자의 createNew() 메소드를 호출하면 됩니다.
먼저 Animal 클래스를 정의합니다.
코드 복사 코드는 다음과 같습니다.

var Animal = {
createNew: function () {
var 동물 = {};
animal.sleep = function (){ 경고 ("잠들기") }
return 동물; 🎜>

그런 다음 Cat의 createNew() 메서드에서 Animal의 createNew() 메서드를 호출합니다.


코드 복사 코드는 다음과 같습니다. var Cat = {
createNew: function () {
var cat = Animal.createNew ();
cat.name = "큰소리";
cat.makeSound = function (){ 경고 ("야옹"); >return cat;
}
};


  이렇게 얻은 Cat 인스턴스는 Cat 클래스와 Animal 클래스를 모두 상속받습니다.



코드 복사
코드는 다음과 같습니다. var cat1 = Cat.createNew(); cat1.sleep(); // Sleeping in

 
3.3 Private 속성과 Private 메소드
createNew() 메소드에서는 cat 객체에 정의되어 있지 않습니다. 메서드와 속성은 비공개입니다.


코드 복사
코드는 다음과 같습니다. var Cat = { createNew: function () {
var cat = {};
var sound = "야옹야옹";
cat.makeSound = function(){ 경고(소리) }; >}
};


위 예제의 내부 변수 sound는 외부에서 읽을 수 없으며 cat의 공용 메소드 makeSound()를 통해서만 읽을 수 있습니다.



코드 복사

 
3.4 데이터 공유

  때로는 읽고 쓸 수 있는 모든 인스턴스 개체가 필요합니다. 동일한 내부 데이터. 이때 내부 데이터를 클래스 객체 내부와 createNew() 메소드 외부에 캡슐화하면 됩니다.


코드 복사

코드는 다음과 같습니다.

var Cat = {
sound : "야옹야옹",
createNew: function(){
var cat = {}
cat.makeSound = function(){ 경고 (Cat.sound) };
cat.changeSound = function (x)
return cat


  그런 다음 두 개의 인스턴스 객체를 생성합니다.


var cat1 = Cat.createNew();
var cat2 = Cat.createNew();
cat1.makeSound() //야옹야옹


인스턴스 객체가 있는데, 공유 데이터가 수정되면 다른 인스턴스 객체도 영향을 받습니다.


cat2.changeSound("La La La" );
cat1.makeSound() // 라라라

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