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

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

Leetcode 挑战 Day 09 [344. Reverse String]

344. Reverse String 今天这一题是将一个字元阵列翻转过来,题目看似很单纯,但也有一...

轻松救回被删语音备忘录

如何救回 iPhone 13/12 Pro/12/11/11 Pro/XS/XR/X 被删除的录音档...

一次性密码 (One-time pad:OTP)

一次性密码(one-time pad)和一次性密码(one-time passoword )的首字母...

不只懂 Vue 语法:以 Vue 和 Nuxt 为例,说明 SPA 和 SSR 的概念?

问题回答 Vue 是 SPA 框架,而 Nuxt 是 Vue 生态系里的一个能同时实现 SPA 和 ...

外贸网站建站必须知道的事情

外贸网站制作是许多企业发展海外客户的重要工具。网站作为推广的基础,其质量当然是至关重要的,那么怎样才...