객체 작성 모드

1955 단어

1. 공장 모델

 

function createPerson () {
  var o = new Object();
  o.name = name;
  o.age = age;
  o.job = job;
  o.sayName = function () {
    alert(this.name)
  }
}
var person1 = createPerson('silva', 29, 'IT');

2. 구조 함수 모드

function Person (name, age) {
    this.name = name;
    this.age = age;
    this.say = function () {
        console.log('hello');
    }
}

var p1 = new Person('silva', 26);
var p2 = new Person('jimmy', 29);
//  :   Person , new 。
//  4 :
// 1. 
// 2. ( this )
// 3. 
// 4. 

3. 원형 모드

function Person () {}

Person.prototype = {
    constructor: Person,
    name: 'silva',
    age: 29,
    sayName: function () {
        console.log(this.name);
    }
}

var person1 = new Person();
person1.sayName();

4. 구조 함수 모드와 원형 모드를 조합하여 사용

 , 

function Person (name, age, job) {
    this.name = name;
    this.age = age;
    this.job = job;
}

Person.prototype = {
    constructor: Person,
    sayName: function () {
        console.log(this.name);
    }
}

var person1 = new Person('silva', 29, 'IT');

5. 동적 프로토타입 모드

//  
function Person (name, age, job) {
    this.name = name;
    this.age = age;
    this.job = job;
    if (typeof this.sayName != 'function') {
        Person.prototype.sayName = function () {
            console.log(this.name);
        }
    }
}
var person1 = new Person('silva', 29, 'IT');

6. 기생구조 함수 모드

//  , , 
function Person(name, age, job) {
    var o = new Object();
    o.name = name;
    o.age = age;
    o.job = job;
    o.sayName = function () {
        console.log(this.name);
    };
    return o;
}
var friend = new Person('Mike', 18, 'student');
friend.sayName();

좋은 웹페이지 즐겨찾기