JavaScript里的靜態方法和實例方法


var Person=function(){};

定義一個function實際上是定義了一個類(class)。

 

靜態方法

Person.say=function(){
    console.log('I am a Person,I can say.')
};

Person.say(); //正常運行

var carl=new Person;
carl.say(); //報錯

我們給Person這個類添加了一個say方法,它在類上面的,所以,它實際上是一個靜態方法.

靜態方法:不能在類的實例上調用靜態方法,而應該通過類本身調用。

 

類(class)通過 static 關鍵字定義靜態方法。以上對Person.say方法的定義等同於:

class Person {
  static say() {
    return console.log('I am a Person, I can say.');
  }
}

 

實例方法

Person.prototype.getName=function(name){
    console.log('My name is '+name);
}

Person.getName('Carl'); //報錯

var carl=new Person;
carl.getName('Carl'); //正常運行
getName這個方法實際上是在prototype上面的,只有創建一個實例的情況下,才可以通過實例進行訪問。 

Reference:

1.作者:開車去環游世界
鏈接:https://www.jianshu.com/p/bedefecffa22
來源:簡書

2.https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Classes/static


免責聲明!

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



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