函式使用function關鍵字來定義,可以用在函式定義表示式或函式宣告語句中。
函式呼叫的4種方法:
1、作為函式;
12、作為建構函式(看建構函式部分);//這是乙個普通函式
2function
range() 3//
函式表示式
4var range = function
() 56//
呼叫7 range()
3、作為方法;
1var o =3};
4 o.add();
22、使用關鍵字 new 呼叫;var o ={};3//
要想以物件o的方法來呼叫函式f(),可以下面的寫法
4f.call(o);
建構函式其實就是乙個使用 new 操作符呼叫的函式。
當使用 new 呼叫時,建構函式內用到的 this 物件會指向新建立的物件例項。 不使用 new 進行呼叫,和普通函式沒有區別。
建構函式與其他函式唯一的區別就是呼叫方式的不同。在《j**ascript高階程式設計》中個有這樣一句話:任何函式,只要通過 new操作符來呼叫,那他就可以作為建構函式。
特點:
1、建構函式首字母大寫,普通函式首字母小寫(約定成俗);1//
這是乙個建構函式
2function
range() 3//
這是乙個普通函式
4function range()
//3、通常不使用return關鍵字;這是乙個建構函式
function
range()
//呼叫
var o = new range();
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...
拷貝建構函式和賦值建構函式
拷貝構造是確確實實構造乙個新的物件,並給新物件的私有成員賦上引數物件的私有成員的值,新構造的物件和引數物件位址是不一樣的,所以如果該類中有乙個私有成員是指向堆中某一塊記憶體,如果僅僅對該私有成員進行淺拷貝,那麼會出現多個指標指向堆中同一塊記憶體,這是會出現問題,如果那塊記憶體被釋放了,就會出現其他指...