iT邦幫忙

0

Constructor

當我們今天要儲存個人的信息會使用到object,但仔細思考若有100位的話,是否太麻煩了

let persion1 = {
    name: "Dennis",
    age: 22,
    phone: "090909090"
}
console.log(persion1)
//{ name: 'Dennis', age: 22, phone: '090909090' }

這個時候就需要Constructor來幫助我們建立一個實體物件,Constructor很像是一個模板,藉由不同的內容去創造多個不同的實體,是不是方便很多呢

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

let a = new Person("Dennis",22) //new 是關鍵字 建立一個Person的實體

console.log(typeof(Person)) //function
console.log(typeof(a)) //object    

奇怪為什麼會有this?

function Person(name, age, phone){
    this.name = name
    this.age = age
    this.phone = phone
    this.fn = function(){
        console.log(this)
    }
}

let a = new Person("Dennis",22) //new 是關鍵字 建立一個Person的實體
a.fn()

/*
Person {
  name: 'Dennis',
  age: 22,
  phone: undefined,
  fn: [Function (anonymous)]
}
*/

結果我們透過fn的function來輸出什麼是this,結果就是指向目前的物件拉


最後來做個簡單的小應用吧

function Person(name, age, phone){
    this.name = name
    this.age = age
    this.phone = phone
    this.SayHi = function(){
        console.log(`${this.name}說你好`)
    }
}

let a = new Person("Dennis",22) //new 是關鍵字 建立一個Person的實體
a.SayHi() //Dennis說你好

尚未有邦友留言

立即登入留言