構造函數與普通函數的比較


在js中,用new關鍵字來調用定義的構造函數。默認返回的是一個新的對象具有構造函數定義的變量和方法。
先來寫個構造函數的例子:
 
function Prince(name,age){
  this.gender="male";
  this.kind=true;
  this.rich=true;
  this.name=name;
  this.age=age;
}
Prince.prototype.toFrog=function(){
  console.log("Prince "+this.name+" turned into a frog.");
}
var prince=new Prince("charming",25);
prince.toFrog();//Prince charming turned into a frog.
prince.kind;//true

 

構造函數與普通函數的區別就是:
1、用new關鍵字調用
var prince = new Prince(“charming”,25);
2、函數內部可以使用this關鍵字(普通函數原則上不可以!因為普通函數的this相當於window)
在構造函數內部,this指向的是構造出的新對象。用this定義的變量貨函數/方法,就是實例變量/實例函數/方法。需要用實例才能訪問到,不能用類型名訪問。
prince.age;//25
Prince.age;//undefined
3、默認不用return返回值
構造函數是不需要用return顯示返回值,默認會返回this,也就是新的實例對象。當然,也可以用return語句,返回值會根據return值的類型而有所不同。
4、函數命名建議首個字母大寫,與普通函數區分開。
不是命名規范,但是建議這么寫。
 
 
附上一個普通函數:
    function common(){
         return("愛因斯然");
    }
    common();
//自行腦補構造函數和普通函數的區別


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM