2017-06-23 119 views
1

我正在讀機器上的beginner's guide從頭學習JavaScript。簡單的JavaScript對象構造函數

大概1/4頁向下是「THE代碼」部分。該部分標題下面是有關的代碼。

var Node = function(object) { 
    for (var key in object) 
    { 
     this[key] = object[key]; 
    } 
}; 

我意識到這可能是一個非常基本的構造函數,但我從來沒有見過這種模式。

有沒有關於此模式設計或類型的構造函數的任何鏈接或指南。我想盡可能多地學習它。

+4

看起來你可以把什麼是「拷貝構造函數」。 – Carcigenicate

+0

將一個對象的屬性複製到一個新對象中,而不是手動輸入this.prop = 1(etc)。來自C++背景的人正在使用EcmaScript 6 for-in循環。 – InfiniteStack

+0

@InfiniteStack [for-in在ES1中定義...](http://www.ecma-international.org/publications/files/ECMA-ST-ARCH/ECMA-262,%201st%20edition,%20June% 201997.pdf) –

回答

1

沒有什麼要了解或理解。它只是構造一個新對象並將其他對象的屬性複製到它中。

在現代JS,你也可以寫

function Node(object) { 
    Object.assign(this, object); 
} 
+0

這是一個構造函數,它應該用'new'調用。我們不能從代碼中判斷,我們唯一的提示是函數名稱的大小寫。 – Bergi