Javascript에서 객체를 생성하는 다양한 방법
6680 단어 javascript
객체 리터럴
한 번 발생하는 데이터를 저장하는 데 자주 사용됨
const person = {
name: "John",
age: 50,
birthday() {
this.age++
}
}
person.birthday() // person.age === 51
건설자
클래스의 다른 인스턴스가 영향을 줄 수 없는 자체 데이터가 있는 개체의 여러 인스턴스를 만들어야 할 때 종종 사용됩니다.
new
연산자는 생성자를 호출하기 전에 사용해야 합니다. 그렇지 않으면 전역 개체가 변경됩니다.function Person(name, age) {
this.name = name
this.age = age
}
Person.prototype.birthday = function() {
this.age++
}
const person1 = new Person("John", 50)
const person2 = new Person("Sally", 20)
person1.birthday() // person1.age === 51
person2.birthday() // person2.age === 21
공장 기능
생성자와 유사한 새 객체를 생성하지만 클로저를 사용하여 비공개 데이터를 저장할 수 있습니다. 함수 또는 this 키워드를 호출하기 전에 new를 사용할 필요도 없습니다. 팩토리 함수는 일반적으로 프로토타입 개념을 버리고 모든 속성과 메서드를 개체의 고유한 속성으로 유지합니다.
const createPerson = (name, age) => {
const birthday = () => person.age++
const person = { name, age, birthday }
return person
}
const person = createPerson("John", 50)
person.birthday() // person.age === 51
객체.생성()
새로 생성된 객체의 프로토타입을 설정합니다.
const personProto = {
birthday() {
this.age++
}
}
const person = Object.create(personProto)
person.age = 50
person.birthday() // person.age === 51
정의할 새 속성에 대한 설명자 역할을 하는 Object.create()에 두 번째 인수를 제공할 수도 있습니다.
Object.create(personProto, {
age: {
value: 50,
writable: true,
enumerable: true
}
})
결론
Reference
이 문제에 관하여(Javascript에서 객체를 생성하는 다양한 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/satel/different-ways-to-create-an-object-in-javascript-232a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)