使用new時,會發生什麼?

2022-08-23 03:03:14 字數 718 閱讀 9917

使用new來呼叫函式,或者說發生構造函式呼叫時,會自動執行下面的操作:

建立(或說構造)乙個全新的物件。

這個新物件會被執行[[prototype]]連線。

這個新物件會繫結到函式呼叫的this。

如果函式沒有返回其他物件,那麼new表示式中的函式呼叫會自動返回這個新物件。

如下**:

function

fn()

; }

var a = new

fn;

console.log(a.user);

//undefined

function

fn() ;}

var a = new

fn;

console.log(a.user);

//undefined

再如:

function

fn()

var a = new

fn;

console.log(a.user);

//追夢子

function

fn()

var a = new

fn;

console.log(a.user);

//追夢子

總結:

使用new來呼叫函式,會發生什麼?

使用new來呼叫函式,或者說發生構造函式呼叫時,會自動執行下面的操作。建立 或者說構造 乙個全新的物件 這個新物件會被執行 prototype 連線 這個新物件會繫結到函式呼叫的this 如果函式沒有返回其他物件,那麼new表示式中的函式呼叫會自動返回這個新物件 注意第四點,通過兩個小栗子來鞏固一下...

繼承關係下new子類物件,會發生什麼?

假定class student extends person 那麼student s new student 這條語句new子類student物件,到底發生了什麼?由於要用到student類,系統會看一下 類頭 一看不得了,原來sthdent還有個父類person 父類person 類載入 在這一過...

C 方法返回值為引用時會發生什麼

在學習qt的過程中,看到有些內建的qt庫中存在一些返回引用的方法,例如 等等,所以有點好奇,返回值與返回引用之間有什麼區別呢?遂有了這篇文章。在寫驗證程式的時候又對c 的建構函式 拷貝建構函式 賦值建構函式有了新的理解,文章末會放出完整的測試 第一步,我們需要乙個類,給他起個名字,就叫a吧。clas...