建構函式中this,return的詳解

2022-05-03 06:09:06 字數 660 閱讀 8530

1

function

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的話,分兩種情況

function

foo(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,而原物件則沒有初始化。這種問題在類中有指標需要分配空間時會導致災難。從...