私はnode.jsを使用しており、express.jsに基づいてプログラミングしています。util.inherits
JavaScriptで継承を実装するために使用しようとしました。私が試したことは次のとおりです。
//request.js
function Request() {
this.target = 'old';
console.log('Request Target: ' + this.target);
}
Request.prototype.target = undefined;
Request.prototype.process = function(callback) {
if (this.target === 'new')
return true;
return false;
}
module.exports = Request;
//create.js
function Create() {
Create.super_.call(this);
this.target = 'new';
}
util.inherits(Create, Request);
Create.prototype.process = function(callback) {
if (Create.super_.prototype.process.call(this, callback)) {
return callback({ message: "Target is 'new'" });
} else {
return callback({ message: "Target is not 'new'" });
}
}
module.exports = Create;
//main.js
var create = new (require('./create'))();
create.process(function(msg) {
console.log(msg);
});
私のシナリオは次のとおりです。
私はRequest
基本クラスとCreate
子クラスを持っています。リクエストには、コンストラクターtarget
で初期化するフィールドがあります。old
Request
ここで、最初にコンストラクターをCreate
呼び出してから、フィールドを で初期化するクラス オブジェクトを作成します。のプロセス関数を呼び出すと、 のメッセージが返されるはずですが、別のメッセージが返されます。Request
target
new
Create
target is 'new'
これについて同様のスレッドを検索しましたが、すべて私が試したものです! 誰が何が間違っていたのか説明できますか?
前もって感謝します :)