js 창설 대상의 몇 가지 모드

2834 단어

공장 모드

    function createPerson(name, age) {
        let o = new Object();
        o.name = name
        o.age = age
        o.say = function() {
            console.log("name", this.name, "age", this.age);
        }
        return o
    }
    let object1 = createPerson('n1', 'a1');
    let object2 = createPerson('n2', 'a2');
    object1.say();
    object2.say();

 
이 공장 함수를 호출해서name와age를 전달할 때마다 두 개의 속성과 방법을 포함하는 대상을 되돌려줍니다.
 

구조 함수

    function Person(name, age) {
        this.name = name;
        this.age = age;
        this.say = function () {
            console.log("name", this.name, "age", this.age);
        }
    }
    let p1 = new Person('n1', 'a1');
    let p2 = new Person('n2', 'a2');
    p1.say();
    p2.say();

 
구조 함수 중 사실 리턴이 한 대상을 되돌려 주지 않는 것을 볼 수 있다.하지만 이것들은 모두 new 조작부호를 사용한 후 자동으로 조작된다.
(1) 새 객체 만들기
(2) 이 새 대상은 함수 호출된this에 귀속됩니다
(3) 객체 반환
 

원형 모드

    function Person() {
    }
    Person.prototype.name = 'name'
    Person.prototype.age = 'age'
    Person.prototype.say = function () {
        console.log(this.name, this.age);
    }
    let p = new Person()
    p.say();

 
원형을 사용하는 장점은 모든 실례 대상이 그 안에 포함된 속성과 방법을 공유할 수 있고 구조 함수에서 대상의 실례 정보를 정의할 필요가 없다는 것이다.

좋은 웹페이지 즐겨찾기