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说你好

<<:  CallStack

>>:  误格式化硬碟/记忆卡/随身碟?

Day 15: Structural patterns - Facade

目的 建立一个对外的窗口(介面),负责提供特定功能,而功能背後如何运作?与哪些物件有所关联?通通交给...

19.MYSQL NOT指令

NOT与!的意思相同,它代表的意思是,运算结果为0时回传1,其他都回传1 WHERE NOT (AG...

[Day08]稽核行程倒数准备

依不同单位的规定,在时程上会有些差异,不过应该大同小异。 流程大部份是确认稽核阶段 → 来准备稽核...

学习笔记:一起进入 PixiJS 的世界 (三)

来点互动效果吧! 除了绘图外,PixiJS也能设定互动体验,像是上一篇使用PIXI.Graphics...