0

プロトタイプ継承メソッドのテストを行っています.インスタンスを既存のオブジェクトにコピーした後でもエラーが発生します...

ここで何が悪い..

私のテスト:

var human = function(name){
    this.name = name;
}

human.prototype.say = function(){
    alert(this.name);
}

var male = function(gender){
    this.gender = gender;
}

male.prototype.Gender = function(){
    alert(this.gender);
}

var inst1 = new human('nw louies');
inst1.say();

var inst2 = new male("male");
inst2.prototype = new human("sa loues philippe"); //i am copying the instance of human
inst2.Gender();
inst2.say(); // throw the error as "undefined"

ここで何が問題なのですか..誰かが私の間違いを理解するのを手伝ってくれますか?

ライブデモはこちら

4

2 に答える 2

1

あなたが言う必要があります

var male = function(gender){
    this.gender = gender;
}

male.prototype = new human();

name男性オブジェクトのプロパティも設定する必要があることを忘れないでください。setNameたとえば、メソッドを公開してコンストラクター関数でhuman呼び出すことができます。male

于 2013-07-25T12:15:14.870 に答える
0

プロトタイプ プロパティは、コンストラクター/関数でのみ定義されます。そう...

var obj = { a: 10 };
obj.prototype = { b : 20 }; // Wont't work

obj.constructor.prototype.say = function(){
    alert("Hello");
}

obj.say(); // Works.

お分かりできると良いのですが

于 2013-07-25T12:17:21.260 に答える