私はjavascriptとhtml5を使用して簡単なプラットフォームゲームを書いています。私はオブジェクト指向の方法でjavascriptを使用しています。継承を機能させるために、私は以下を使用しています。
// http://www.sitepoint.com/blogs/2006/01/17/javascript-inheritance/
function copyPrototype(descendant, parent) {
var sConstructor = parent.toString();
var aMatch = sConstructor.match(/\s*function (.*)\(/);
if (aMatch != null) { descendant.prototype[aMatch[1]] = parent; }
for (var m in parent.prototype) {
descendant.prototype[m] = parent.prototype[m];
}
};
この投稿のために、次の例を検討してください。
function A() {
this.Name = 'Class A'
}
A.prototype.PrintName = function () {
alert(this.Name);
}
function B() {
this.A();
}
copyPrototype(B, A);
function C() {
this.B();
}
copyPrototype(C, B);
var instC = new C();
if (instC instanceof A)
alert ('horray!');
私が理解しているように、CはC&B&Aのインスタンスであるため、ホレイアラートボックスが表示されることを期待しています。私は間違っていますか?それとも、間違った方法でチェックしているだけですか?または、copyPrototypeがinstanceof演算子を破壊しましたか?
いつもお時間を割いていただきありがとうございます!
ショー。