三種方式創(chuàng)建函數(shù)及構(gòu)造函數(shù)與普通函數(shù)之間的區(qū)別

創(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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容