>  기사  >  웹 프론트엔드  >  JavaScript는 객체를 생성합니다

JavaScript는 객체를 생성합니다

不言
不言원래의
2018-04-10 16:48:501386검색

이 글에서 공유한 내용은 자바스크립트로 객체를 생성하는 내용입니다. 특정 참조 값이 있습니다. 도움이 필요한 친구들이 참고할 수 있습니다.

시스템 생성자를 호출하세요

객체를 생성하는 가장 간단한 방법은 인스턴스를 생성하는 것입니다. Object.다음과 같습니다:

    // 1. 调用系统的构造函数
    var person = new Object();

    // 添加属性
    person.name = "小李";
    person.age = 22;
    person.sex = "F";

    // 添加方法
    person.eat = function () {
        console.log("我喜欢吃油炸榴莲.")
    };

    person.play = function () {
        console.log("我喜欢玩电子游戏.")
    };

    person.introduce = function () {
        console.log("我叫" + this.name + ", 今年" + this.age + "岁.");
    };    
    
    person.introduce();        // 输出:我叫小李, 今年22岁.

위 코드는 object라는 객체를 생성하고 여기에 세 가지 속성과 세 가지 메서드를 추가합니다.

객체 리터럴

그러나 객체 생성자와 객체 리터럴을 사용하여 단일 객체를 생성할 수 있지만 이러한 방식으로 객체를 생성하면 반복되는 코드가 많이 생성됩니다. 그래서 사람들은 팩토리 패턴을 사용하기 시작했습니다. 다음과 같습니다:

function createPerson(name, age, sex) {
    var object = new Object();
    person.name = "小李";
    person.age = 22;
    person.sex = "F";
    person.introduce = function () {
        console.log("我叫" + this.name + ", 今年" + this.age + "岁.");
    };
    
    return person;
}

var person0 = createPerson("小苏", "21", "M");
var person1 = createPerson("铁子", "27", "M");

createPerson() 함수는 허용된 매개변수를 기반으로 모든 정보를 포함하는 Person 개체를 구성할 수 있습니다. 이 함수는 횟수 제한 없이 호출할 수 있으며, 매번 호출할 때마다 3개의 속성과 1개의 메서드가 포함된 객체를 반환합니다. 팩토리 패턴은 유사한 객체를 여러 개 생성함으로써 발생하는 대량의 코드 중복 문제는 해결하지만, 객체 식별, 즉 객체의 유형을 어떻게 알 수 있는지에 대한 문제는 해결하지 못합니다. JavaScript의 발전과 함께 또 다른 새로운 패턴, 즉 생성자 패턴이 등장했습니다.

생성자 패턴

ECMAScript의 생성자는 특정 유형의 객체를 생성할 수 있습니다. Object 객체 및 Array 객체와 같은 기본 생성자는 런타임 시 실행 환경에 자동으로 나타납니다. 또한 생성자를 사용자 정의하여 객체의 유형과 메서드를 사용자 정의할 수도 있습니다. 예를 들어 이전 예제는 다음 코드와 같이 자동 생성자를 사용하여 다시 작성할 수 있습니다.

function Person(name, age, sex) {
    this.name = name;
    this.age  = age;
    this.sex  = sex;
    
    this.introduce = function () {
        console.log("我叫" + this.name + ", 今年" + this.age + "岁.");
    };
}

var person0 = createPerson("小苏", "21", "M");
var person1 = createPerson("铁子", "27", "M");

이 예제에서는 Person() 함수가 createPerson() 함수를 대체합니다. Person() 함수의 코드는 createPerson() 함수와 다음과 같은 유사점을 가지고 있습니다.

  • 객체를 명시적으로 생성하지 않습니다.

  • 이 객체에 속성과 메서드를 직접 할당합니다. 반품내역이 없습니다.

  • 또한 함수 이름 시작 부분에 대문자 P가 사용된다는 점에도 유의하세요. 관례에 따라 생성자는 항상 대문자로 시작해야 하고, 생성자가 아닌 경우에는 소문자로 시작해야 합니다.

    Person의 새 인스턴스를 생성하려면
  • 연산자를 사용해야 합니다. 이런 방식으로 생성자를 호출하는 것은 실제로 네 가지 프로세스를 거칩니다.


new새 개체 만들기

  1. 생성자의 범위를 새 개체에 할당합니다(이는 이 새 개체를 가리킵니다). 생성자의 코드

  2. 이 새 개체를 반환합니다.

  3. 관련 추천:
  4. node.js로 로컬 서버 생성에 대한 자세한 설명

JS로 객체를 생성하는 여러 방법 공유

three.js 장면 인스턴스 생성에 대한 자세한 설명

위 내용은 JavaScript는 객체를 생성합니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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