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