函式和建構函式

2022-09-14 09:30:20 字數 1623 閱讀 6692

函式使用function關鍵字來定義,可以用在函式定義表示式或函式宣告語句中。

函式呼叫的4種方法:

1、作為函式;

1

//這是乙個普通函式

2function

range() 3//

函式表示式

4var range = function

() 56//

呼叫7 range()

2、作為建構函式(看建構函式部分);

3、作為方法;

1

var o =3};

4 o.add();

2

var o ={};3//

要想以物件o的方法來呼叫函式f(),可以下面的寫法

4f.call(o);

建構函式其實就是乙個使用 new 操作符呼叫的函式。

當使用 new 呼叫時,建構函式內用到的 this  物件會指向新建立的物件例項。 不使用 new 進行呼叫,和普通函式沒有區別。

建構函式與其他函式唯一的區別就是呼叫方式的不同。在《j**ascript高階程式設計》中個有這樣一句話:任何函式,只要通過 new操作符來呼叫,那他就可以作為建構函式。

特點:

1、建構函式首字母大寫,普通函式首字母小寫(約定成俗);1//

這是乙個建構函式

2function

range() 3//

這是乙個普通函式

4function range()

2、使用關鍵字 new  呼叫;

//

這是乙個建構函式

function

range()

//呼叫

var o = new range();

3、通常不使用return關鍵字;

3.1、如果建構函式顯示的使用return語句返回乙個物件,那麼呼叫表示式的值就是這個物件;

1

//這是乙個建構函式

2function

range() 4}

5//呼叫6

var o = new

range();

7 console.log(o)

瀏覽器控制台列印結果:

3.2、如果使用return語句但沒有指定返回值,或返回乙個原始值,就可以忽略這個返回值,同時使用這個新物件作為呼叫結果。

1

//這是乙個建構函式

2function

range() 5//

呼叫6var o = new

range();

7 console.log(o)

瀏覽器控制台列印結果:

4、this指向自己;

1

//這是乙個普通函式

2function

range() 5//

呼叫6range()78

//這是乙個建構函式

9function

range()

12//

呼叫13

var o = new range();

瀏覽器控制台列印結果:

建構函式和拷貝建構函式

建構函式 簡單地說建構函式是類函式,函式名與類名完全相同,無返回值 建構函式屬於類的成員函式,除了具有一般成員函式的特點外,還具有自己的特點 1 是類的乙個特殊的成員函式,函式名與類名相同 2 訪問屬性應該是public 3 功能是初始化物件,在建構函式中一般不作初始化以外的事情 4 可以在類內定義...

拷貝建構函式和賦值建構函式

class cmystring 賦值建構函式 cmystring cmystring operator const cmystring str 新分配記憶體,將str的m pdata記憶體拷貝到m pdata中 m pdata new char strlen str.m pdata 1 strcpy...

拷貝建構函式和賦值建構函式

拷貝構造是確確實實構造乙個新的物件,並給新物件的私有成員賦上引數物件的私有成員的值,新構造的物件和引數物件位址是不一樣的,所以如果該類中有乙個私有成員是指向堆中某一塊記憶體,如果僅僅對該私有成員進行淺拷貝,那麼會出現多個指標指向堆中同一塊記憶體,這是會出現問題,如果那塊記憶體被釋放了,就會出現其他指...