js裡面的例項方法和靜態方法

2022-04-03 07:41:47 字數 988 閱讀 4470

靜態方法是可以直接用類名.方法名去呼叫的,而例項方法是不可以的,他必須要用例項才可以去呼叫。

var person=function(){};

person.say=function();

person.prototype.getname=function(name)

以上的**,實際上很簡單,首先是定義了乙個function,js裡面像上面那樣定義乙個function實際上是定義了乙個類,接下來,我給你這個類新增了乙個say的方法,然後接著給這個類的prototype新增了乙個getname的方法,所有的類都是會有乙個prototype這樣的屬性,這個屬性指向的是object,這個是屬於js原型鏈的問題,在這裡我就不闡述了。好了,我現在來按照以下呼叫一下:

person.say();

person.getname('carl');

是不是發現,第乙個可以正常執行,第二個會報錯,再來看看下面的**:

var carl=new person;

carl.say();

carl.getname('carl');

是不是和第一段**剛好相反,那麼這個地方實際上我們就看出來了,say方法是』.』在類上面的,所以,它實際上是乙個靜態方法,那麼當然是可以直接通過類進行訪問的(這裡的靜態方法都是public的),所以第一段的第一句話是不會抱錯的,而getname這個方法實際上是在prototype上面的,只有建立乙個例項的情況下,才可以通過例項進行訪問。 

靜態方法:定義在直接用類名(這裡就是方法名)』.』乙個方法,那麼這個實際上建立的是乙個靜態方法;

例項方法:用prototype』.』的乙個方法,實際上建立的是乙個例項方法,例項方法是需要建立例項物件進行訪問的

所以,以上就是我想說的,js裡面的靜態方法和例項方法,同樣,靜態屬性和例項屬性也是這個道理。

js的例項方法和靜態方法分析

var person function person.say function person.prototype.getname function name 以上的 實際上很簡單,首先是定義了乙個function,js裡面像上面那樣定義乙個function實際上是定義了乙個類,接下來,我給你這個類新...

例項方法 類方法和靜態方法

1 例項方法,即需要通過建立例項 物件 進行呼叫的方法。下方即為例項方法的例子 class person object def init self self.name zs self.age 10 p person print p.name,p.age 2 類方法,即在定義方法時使用 classme...

類方法 例項方法和靜態方法

例項方法 類方法 靜態方法三種方法在記憶體中都屬於類,區別在於呼叫方式不同 例項方法 定義 第乙個引數必須是例項物件,該引數名一般約定為 self 通過它來傳遞例項的屬性和方法 也可以傳類的屬性和方法 呼叫 只能由例項物件呼叫。例項物件可以呼叫例項方法 類方法和靜態方法類方法 定義 使用裝飾器 cl...