JavaScript のクラス、プロトタイプの使用、そして最後に継承方法について学んできました。
私の理解から、以下は次のようになります。
myInstance.getIt();
呼び出されたため、「ジョン」にアラートを送信myInheritedInstance.getIt();
呼び出されたため、アラート「ジャック」myInheritedInstance.getParent();
.getIt()
はMyClassに割り当てられています- これにより、myInheritedInstance.getParent(); のときに「ジョン」にアラートが送信されます。と呼ばれます。
代わりに、実際に起こることは次のとおりです。
- アラート「ジョン」
- アラート ブランク
- アラート「ジャック」
私は愚かなことをしたか、ここで基本的な概念を誤解したと感じているので、助けていただければ幸いです。
var MyClass = function() { };
MyClass.prototype.constructor = MyClass;
MyClass.prototype.name = "John";
MyClass.prototype.getIt = function () { alert(this.name); };
var myInstance = new MyClass();
myInstance.getIt();
//Now inheritance
var MyInheritedClass = function () { };
MyInheritedClass.prototype = new MyClass;
MyInheritedClass.prototype.constructor = MyInheritedClass;
MyInheritedClass.prototype.name = "Jack";
MyInheritedClass.prototype.getIt = function () { alert(this.name); };
MyInheritedClass.prototype.getItParent = MyClass.prototype.getIt.call(this);
var myInheritedInstance = new MyInheritedClass();
myInheritedInstance.getIt();
myInheritedInstance.getItParent();