객체 지향 JavaScript — 생성자 및 속기

https://www.amazon.com/John-Au-Yeung/e/B08FT5NT62에서 Amazon에서 내 책을 확인하십시오.

지금 http://jauyeung.net/subscribe/에서 내 이메일 목록을 구독하십시오.

JavaScript는 부분적으로 객체 지향 언어입니다.

JavaScript를 배우려면 JavaScript의 객체 지향 부분을 배워야 합니다.

이 글에서 우리는 생성자와 객체 속기를 살펴볼 것입니다.

생성자 속성


constructor 속성은 인스턴스 개체의 일부입니다.

여기에는 생성자 함수에 대한 참조가 포함됩니다.

따라서 다음이 있는 경우:

function Person(name, occupation) {
  this.name = name;
  this.occupation = occupation;
  this.whoAreYou = function() {
    return `${this.name} ${this.occupation}`
  };
}

const jane = new Person('jane', 'writer');


그 다음에:

jane.constructor

Person 생성자 함수입니다.

instanceof 연산자


instanceof 연산자를 사용하면 객체가 주어진 생성자로 생성되었는지 확인할 수 있습니다.

예를 들어 다음과 같이 작성할 수 있습니다.

jane instanceof Person


그러면 true  를 얻습니다.

그리고 우리가 쓴다면:

jane instanceof Object


그것도 true  .

객체를 반환하는 함수



객체를 반환하는 함수를 팩토리 함수라고 합니다.

예를 들어 다음과 같이 작성하여 팩토리 함수를 만들 수 있습니다.

function factory(name) {
  return {
    name
  };
}


그런 다음 다음과 같이 작성하여 호출할 수 있습니다.

const james = factory('james');


그러면 james.names'james'  가 됩니다.

생성자는 this 의 인스턴스를 반환하는 대신 객체를 반환하도록 작성할 수도 있습니다.

예를 들어 다음과 같이 작성할 수 있습니다.

function C() {
  this.a = 1;
  return {
    b: 2
  };
}


그런 다음 구성을 호출하면:

const c = new C()


그러면 우리는 다음을 얻습니다.

{b: 2}


개체 전달



객체를 함수에 전달할 수 있습니다.

예를 들어 다음과 같이 작성할 수 있습니다.

const reset = function(o) {
  o.count = 0;
};


그런 다음 다음과 같이 작성하여 사용할 수 있습니다.

const obj = {
  count: 100
}
reset(obj);
console.log(obj);


그리고 우리는 다음을 얻습니다.

{count: 0}


콘솔 로그에서.

객체 비교



참조가 동일한 경우에만 ===를 반환하므로 true와 객체를 비교할 수 없습니다.

예를 들어 다음이 있는 경우:

const james = {
  breed: 'cat'
};
const mary = {
  breed: 'cat'
};


그 다음에:

james === mary


속성이 정확히 같더라도 false를 반환합니다.

반환할 수 있는 유일한 방법true은 하나를 개체에 다른 개체에 할당하는 것입니다.

예를 들어 다음과 같이 작성합니다.

const james = {
  breed: 'cat'
};
const mary = james;


그 다음에:

james === mary


반환true  .

ES6 객체 리터럴



ES6은 객체 리터럴을 정의하기 위한 훨씬 더 짧은 구문을 제공합니다.

예를 들어 다음이 있는 경우:

let foo = 1
let bar = 2
let obj = {
  foo: foo,
  bar: bar
}


그러면 다음과 같이 줄일 수 있습니다.

let foo = 1
let bar = 2
let obj = {
  foo,
  bar
}


방법을 단축할 수도 있습니다.

예를 들어 다음을 작성하는 대신:

const obj = {
  prop: 1,
  modifier: function() {
    console.log(this.prop);
  }
}


우리는 쓴다:

const obj = {
  prop: 1,
  modifier() {
    console.log(this.prop);
  }
}


계산된 속성 키를 사용할 수도 있습니다.

예를 들어 다음과 같이 작성할 수 있습니다.

let vehicle = "car";
let car = {

}


메소드에 대해서도 동일한 작업을 수행할 수 있습니다.

결론



객체 리터럴은 JavaScript로 다양한 방식으로 작성할 수 있습니다.
constructor 속성과 instanceof  로 생성자를 확인할 수 있습니다.

좋은 웹페이지 즐겨찾기