一つのこと... コンストラクタ関数のprototypeプロパティを使用してメソッドを追加するのはなぜですか?私はプロトタイプとコンストラクタ関数を理解していない
が、私は「名前」プロパティと「logNameは」メソッドを持つオブジェクトが作成されます。このコンストラクタ関数を持っていると言うfunction MyExample(param1){
this.name = param1;
};
MyExample.prototype.logName = function(){
console.log(this.name);
}
私は、コンストラクタ関数の(myExample)プロトタイプにメソッド(logName)を追加したことを理解しています。このオブジェクトが 'name'プロパティと 'logName'メソッドを継承するこのコンストラクタ関数を使用して新しいオブジェクト(me) 。 logNameはメソッドは、新しいオブジェクトの(私の)プロト財産の一部となるだけでなく、コンストラクタ関数が作成されたオブジェクトにlogNameはメソッドを追加する理由
var me = new MyExample('bob');
me.logName(); //bob
..But? (コンストラクタ関数のプロトタイプではありません)同じ結果を提供しませんか? 'logName'は新しいオブジェクトのprotoプロパティの一部ではありません。 2番目の例では
function MyExample(param1){
this.name = param1;
this.logName = function(){
console.log(this.name)
};
};
var me = new MyExample('bob');
me.logName(); //bob