1function
foo(name,age)56
var foo=new foo("tom",14);
7 foo.name;//
tom8 foo.age;//
14
使用建構函式例項化發生的流程:
1.建立乙個foo的空物件。
2.將建構函式中的foo的this指向物件foo。
3.foo的_proto_屬性指向foo函式的prototype原型。
4.執行建構函式中的**。
相對於普通函式,建構函式中的this是指向例項的,而普通函式呼叫中的this是指向windows的。
建構函式中如果加入了return的話,分兩種情況
functionfoo(name,age)}
var foo=new foo("tom",14);
foo.name;
//jeff
1.return的是五種簡單資料型別:string,number,boolean,null,undefined。
這種情況下,忽視return值,依然返回this物件。
2.return的是object。
這種情況下,不再返回this物件,而是返回return語句的返回值。
C 中構造函式呼叫建構函式
include include using namespace std struct cls cls int main 列印結果是不定的,不一定為0 奇怪的地方在於建構函式中呼叫了自己的另乙個建構函式 我們知道,當定義乙個物件時,會按順序做2件事情 1 分配好記憶體 非靜態資料成員是未初始化的 2 ...
C 中構造函式呼叫建構函式
include stdlib.h include iostream using namespace std struct clscls int main 列印結果是不定的,不一定為0 奇怪的地方在於建構函式中呼叫了自己的另乙個建構函式 我們知道,當定義乙個物件時,會按順序做2件事情 1 分配好記憶體...
c 中構造函式呼叫建構函式
c 中建構函式完成的工作分兩步 1 分配空間 2 初始化空間 構造函式呼叫建構函式。class a a int a private int a 這樣會導致,a 中先分配了空間,然後呼叫a 0 又建立了乙個臨時物件,然後初始化為0,而原物件則沒有初始化。這種問題在類中有指標需要分配空間時會導致災難。從...