객체 지향 JavaScript — 생성자 및 속기
지금 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
로 생성자를 확인할 수 있습니다.
Reference
이 문제에 관하여(객체 지향 JavaScript — 생성자 및 속기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aumayeung/object-oriented-javascript-constructors-and-shorthands-38n6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)