1. 程式人生 > >JS 中構造函數和普通函數的區別(詳)

JS 中構造函數和普通函數的區別(詳)

.com 函數名 src func 普通 函數的調用 () inf size

1、構造函數也是一個普通函數,創建方式和普通函數一樣,但構造函數習慣上首字母大寫

2、構造函數和普通函數的區別在於:調用方式不一樣。作用也不一樣(構造函數用來新建實例對象)

3、調用方式不一樣

  • 普通函數的調用方式:直接調用 person();
  • 構造函數的調用方式:需要使用new關鍵字來調用 new Person();

4、構造函數的函數名與類名相同:Person( ) 這個構造函數,Person 既是函數名,也是這個對象的類名

5、內部用this 來構造屬性和方法

function Person(name,job,age)
{
this.name=name;
this.job=job;
this.age=age;
this.sayHi=function()
{
alert("Hi")
}
}

6、構造函數的執行流程

  1. 立刻在堆內存中創建一個新的對象
  2. 將新建的對象設置為函數中的this
  3. 逐個執行函數中的代碼
  4. 將新建的對象作為返回值

7.普通函數例子:因為沒有返回值,所以為undefined

技術分享圖片

8、用instanceof 可以檢查一個對象是否是一個類的實例,是則返回true;所有對象都是Object對象的後代,所以任何對象和Object做instanceof都會返回true

技術分享圖片

·

JS 中構造函數和普通函數的區別(詳)