>웹 프론트엔드 >프런트엔드 Q&A >자바스크립트에서 생성자로부터 값을 반환하는 방법

자바스크립트에서 생성자로부터 값을 반환하는 방법

WBOY
WBOY원래의
2023-05-17 20:39:07786검색

JavaScript는 동적 프로그래밍 언어이며 중요한 기능 중 하나는 객체 지향 프로그래밍(OOP)에 대한 지원입니다. 다른 프로그래밍 언어와 마찬가지로 JavaScript의 생성자는 객체를 생성하는 데 중요한 역할을 합니다. 생성자는 객체의 속성과 메서드를 정의할 뿐만 아니라 객체가 생성될 때 값을 반환할 수도 있습니다. 이 기사에서는 JavaScript의 생성자 반환 값에 대한 관련 지식을 소개합니다.

생성자의 기본 정의

생성자는 새로운 객체를 생성하는 데 사용되는 특수한 유형의 함수입니다. JavaScript에서는 생성자의 이름이 대문자로 시작하는 것이 일반 함수와의 차이점 중 하나입니다. 생성자는 일반적으로 새로 생성된 개체를 초기화하고 개체에 속성과 메서드를 할당하는 데 사용됩니다. 아래 코드에서는 인간 객체를 생성하는 Person이라는 생성자를 정의합니다.

function Person(name, age) {
  this.name = name;
  this.age = age;
  this.sayHello = function() {
    console.log("Hello, my name is " + this.name + ", I am " + this.age + " years old.");
  }
}

위 코드에서 Person은 사람 개체를 초기화하는 데 사용되는 두 개의 매개 변수 name과 age를 받는 생성자입니다. this 키워드는 현재 생성 중인 개체를 가리키는 데 사용됩니다. this 키워드를 통해 각 개체에 대해 서로 다른 속성 값과 메서드를 지정할 수 있습니다. 객체의 속성과 메소드에는 해당 값이 있습니다. 속성 값은 숫자, 문자열, 부울 값 등을 포함한 모든 유형의 값일 수 있습니다. 메소드는 일반적으로 함수입니다.

Person 개체를 생성할 때 다음 방법을 사용할 수 있습니다.

var person = new Person("Tom", 20);

이 코드 줄은 person이라는 개체를 만들고 Person 생성자를 사용하며 name 및 age 매개 변수를 전달합니다. 다음으로 개체의 sayHello 메서드를 호출할 수 있습니다.

person.sayHello(); // 输出:Hello, my name is Tom, I am 20 years old.

위 코드에서는 person 개체의 sayHello 메서드를 호출하고 일부 정보를 출력합니다.

생성자의 반환 값

JavaScript에서 생성자는 반환 값을 가질 수 있으며 반환 값은 모든 유형이 될 수 있습니다. 생성자가 명시적으로 값을 반환하지 않으면 기본적으로 새 개체가 반환됩니다. 생성자가 일반 값을 반환하는 경우 해당 값은 무시되고 새 개체가 반환됩니다. 생성자가 객체를 반환하는 경우 해당 객체는 생성된 원래 객체를 대체합니다. 다음 코드는 생성자 반환 값의 다양한 상황을 보여줍니다.

function Cat(name, age) {
  this.name = name;
  this.age = age;
  this.sayHello = function() {
    console.log("Hello, my name is " + this.name + ", I am " + this.age + " years old.");
  }
  // 返回值为undefined
}

var cat1 = new Cat("Jack", 3);
var cat2 = new Cat("Mimi", 4);

console.log(cat1); // 输出:Cat {name: "Jack", age: 3, sayHello: ƒ}
console.log(cat2); // 输出:Cat {name: "Mimi", age: 4, sayHello: ƒ}

위 코드의 경우 Cat 생성자는 마지막에 값을 반환하지 않지만 두 개의 새 객체 cat1 및 cat2가 계속 생성되고 각 객체에 올바르게 할당됩니다. 및 방법이 설정됩니다.

다음으로 일반 값을 반환하는 예를 살펴보겠습니다.

function Dog(name, age) {
  this.name = name;
  this.age = age;
  this.sayHello = function() {
    console.log("Hello, my name is " + this.name + ", I am " + this.age + " years old.");
  }
  return "This is a new dog."; // 返回一个字符串
}

var dog1 = new Dog("Puppy", 1);
var dog2 = new Dog("Teddy", 2);

console.log(dog1); // 输出:Dog {name: "Puppy", age: 1, sayHello: ƒ}
console.log(dog2); // 输出:Dog {name: "Teddy", age: 2, sayHello: ƒ}

생성자가 문자열을 반환하면 객체 생성에 영향을 주지 않습니다. 이 경우 생성자 반환 값은 무시되고 새 개체가 계속 반환됩니다.

마지막으로 객체 반환의 예를 살펴보겠습니다.

function Car(model, year) {
  this.model = model;
  this.year = year;
  this.engine = {
    cylinders: 4,
    displacement: 2.0,
    horsepower: 200
  };
  return this.engine; // 返回一个对象
}

var car1 = new Car("BMW", 2017);
var car2 = new Car("Mercedes-Benz", 2018);

console.log(car1); // 输出:{cylinders: 4, displacement: 2.0, horsepower: 200}
console.log(car2); // 输出:{cylinders: 4, displacement: 2.0, horsepower: 200}

위의 예에서 Car 생성자는 car1.engine 객체를 반환하므로 엔진 객체만 포함하는 새 객체 car1이 생성됩니다. 다시 동일한 생성자를 사용하여 car2 객체를 생성하면 동일한 엔진 객체가 반환됩니다.

요약

위의 예를 통해 JavaScript에서는 생성자가 반환 값을 가질 수 있으며 반환 값의 유형은 정의되지 않은 값, 일반 값, 객체를 포함한 모든 유형이 될 수 있음을 알 수 있습니다. 기본적으로 생성자는 새 개체를 반환합니다. 생성자가 정의되지 않은 값(null 포함)을 반환하면 해당 값이 원래 개체를 대체합니다. 생성자 반환 값에 대한 규칙을 이해하면 JavaScript의 객체 지향 프로그래밍 기능을 더 잘 이해하고 사용하는 데 도움이 될 수 있습니다.

위 내용은 자바스크립트에서 생성자로부터 값을 반환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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