これは間違いありませんが、私はJavaScriptと少し混乱しています。別の関数の中でメソッドを呼びたい。私はこれを処理するために少し時間を費やしており、これまでに得たものはすべて2番目のコードです。私はコメントに記載されているような類似の解決策があるかどうかを知りたいと思います。私が確認したいプロトタイプなしで他の関数のメソッドを呼び出す方法
function Student() {
this.greeting = function() {
alert('Hi! I\'m student.');
};
};
function Teacher() {
Student.call(this)
this.greeting = function() {
Student.??? // here I want something like "inherited", or call Student.greeting()
alert('and I like apples');
};
};
は、ない別のオプションプロトタイピングのようにあります:
function Student() {
};
Student.prototype.greeting = function() {
alert('Hi! I\'m student.');
};
function Teacher() {
Student.call(this);
this.greeting = function() {
Student.prototype.greeting();
alert('and I like apples');
};
};
ありがとう
これは、オブジェクトのリンクにプロトタイプチェーンを使用するJavaScriptの趣旨ではないクラス継承でシャドウイングを使用しようとしているようです。例えばObject.createを使って他のオブジェクトに委譲すれば、 '[[Prototype]] 'チェインを使ってこれらのメソッドにアクセスすることができます。 –