2016-12-29 18 views
0

私のアイデアが正しいかどうかチェックしたいですか?関数コンストラクタのプロトタイプを使用して新しい関数を追加

コード:

function Person(firstname, lastname) { 
      this.firstname = firstname; 
      this.lastname = lastname; 
     } 

     Person.prototype.getFullName = function() { 
      return this.firstname + ' ' + this.lastname; 
     } 

     var john = new Person('Melo','Tang'); 

私は "機能コンストラクタ" 以下の画像にコードを呼び出します。

function Person(firstname, lastname) { 
       this.firstname = firstname; 
       this.lastname = lastname; 
      } 

場合は、この行のプログラムの実行が

var john = new Person('Melo','Tang'); 

JSは、「機能コンストラクタ」オブジェクトにgetFullName機能を追加するために、プロトタイプチェーンを使用して、私は右だ画像を、次のように空のオブジェクトを新しいのでしょうか? enter image description here

+0

"Prototype Chain"ラベルは赤い矢印の上に表示されます。 –

+0

私はそれを忘れてしまいましたが、これ以外にエラーがありますか? –

答えて

2

あなたの図や矢印や色がどのように表現されているのか分かりません。

プログラムは、ここで何が起こるこのライン

var john = new Person('Melo','Tang');

に走る新しいオブジェクトは、そのプロトタイプとしてPerson.prototypeで、Personコンストラクタを介して構築され、正確ということです。 Person.prototypeの新しいオブジェクトのプロトタイプとして使用されている以外は、検査も相談もされておらず、現時点ではそのメソッドで何も行われていません。プロトタイプは、のプロパティとメソッドを参照する場合(john.getFullName()など)にのみ参照してください。

わかりやすくするために、「関数コンストラクタオブジェクト」という用語は使用しません。単にそれを「コンストラクタ(関数)」と呼んでください。

+0

トータザブロありがとうございます。私が知る限り、Prototypeはオブジェクトのプロパティであり、ProtoはObjectです。私は、関数コンストラクタをJSのObjectであることを強調したいので、 "function constructor object"を呼び出します。私は質問をしたい、 "Person.prototype"は、関数コンストラクタのプロパティですか?はいの場合、Person.prototypeまたはproto ObjにgetFullName関数が追加されましたか? –

関連する問題