創(chuàng)建函數(shù)的三種方式:函數(shù)聲明,函數(shù)表達(dá)式,函數(shù)對(duì)象
- 函數(shù)聲明
function sum1(num1,num2){
return num1+num2;
}
sum1(10,20);
- 函數(shù)表達(dá)式
var sum2 = function(num1,num2){
return num1+num2;
}
sum(10,20);
- 函數(shù)對(duì)象形式
var sum3 = new Function("num1","num2","return num1+num2");
//var 函數(shù)名 = new Function(“參數(shù)...”,”函數(shù)體”);
var sum = new Function("num1,num2","return num1+num2");
var result1 = sum(120,130);
alert(result1)
構(gòu)造函數(shù)和普通函數(shù)的區(qū)別
- 定義方式:構(gòu)造函數(shù)首字母通常大寫
- 調(diào)用方式:構(gòu)造函數(shù)調(diào)用方法為:new Person()
普通函數(shù)調(diào)用方法為:person() - 作用:構(gòu)造函數(shù)用來(lái)新建實(shí)例對(duì)象
- 構(gòu)造函數(shù)的函數(shù)名與類名相同:Person( ) 這個(gè)構(gòu)造函數(shù),Person 既是函數(shù)名,也是這個(gè)對(duì)象的類名
- 構(gòu)造函數(shù)內(nèi)部用this 來(lái)構(gòu)造屬性和方法
function Person(name,job,age)
{
this.name=name;
this.job=job;
this.age=age;
this.sayHi=function()
{
alert("Hi")
}
}
- 構(gòu)造函數(shù)的執(zhí)行流程
在堆內(nèi)存中創(chuàng)建一個(gè)新的對(duì)象
將this指向這個(gè)新建的對(duì)象
執(zhí)行函數(shù)中的代碼
將新建對(duì)象作為返回值 - 構(gòu)造函數(shù)默認(rèn)將新建對(duì)象返回,普通函數(shù)如果沒(méi)定義返回值,則返回undefined
- 用instanceof 可以檢查一個(gè)對(duì)象是否是一個(gè)類的實(shí)例,是則返回true;所有對(duì)象都是Object對(duì)象的后代,所以任何對(duì)象和Object做instanceof都會(huì)返回true
function Person(name, age, gender){
this.name = name;
this.age = age;
}
var per = new Person("komal",20);
console.log(per); //Person
console.log(per instanceof Person) //true
參考博文:
https://blog.csdn.net/JinPingQ/article/details/84335179
https://blog.csdn.net/weixin_41796631/article/details/82939585