JS 中構造函數和普通函數的區別(詳)
阿新 • • 發佈:2019-03-15
.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、構造函數的執行流程
- 立刻在堆內存中創建一個新的對象
- 將新建的對象設置為函數中的this
- 逐個執行函數中的代碼
- 將新建的對象作為返回值
7.普通函數例子:因為沒有返回值,所以為undefined
8、用instanceof 可以檢查一個對象是否是一個類的實例,是則返回true;所有對象都是Object對象的後代,所以任何對象和Object做instanceof都會返回true
·
JS 中構造函數和普通函數的區別(詳)