2017-06-23 7 views
1

私はJavaScriptを使用してゼロから機械学習でbeginner's guideを読んでいます。シンプルなJavaScriptオブジェクトコンストラクタ

THE CODE」と題されたセクションが1/4ページほど下にあります。そのセクション見出しのすぐ下に問題のコードがあります。

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

これは非常に基本的なコンストラクタ関数であることがわかりましたが、以前はこのパターンを見たことがありませんでした。

このパターンデザインまたはタイプのコンストラクタに関するリンクまたはガイドはありますか。私はできるだけ多くのことを学びたいと思っています。

+4

は、あなたが「コピーコンストラクタ」と呼ぶことができるもののように見える書くことができます。 – Carcigenicate

+0

this.prop = 1(など)を手動で入力するのではなく、オブジェクトのプロパティを新しいオブジェクトにコピーします。 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

関連する問題