3
拡張する各サブクラスの位置を返す親クラスにメソッドを作成したいとします。javascriptスーパークラスからサブクラス '__dirname'を取得する方法
// Class A dir is '/classes/a/
class A{
getPath(){
console.log(__dirname);
return (__dirname);
}
}
// Class B dir is '/classes/b'
class B extends A{
}
new A().getPath(); // Prints '/classes/a'
new B().getPath(); // Prints '/classes/a' (I want here '/classes/b');
クラスBはAの位置を出力しますが、私は、サブクラスの場所を表示します親クラスのメソッドを作成するためのオプションを探していますなぜ私は理解しています。私はポイントを欠いているので、すべてのサブクラスでメソッドをオーバーライドする必要はありません
私もprocess.pwd()
を試しました。
関連:http://stackoverflow.com/questions/13227489/how-can-one-get-the-file-path-of-the-caller-function-in-node-js –
「新しいB ).getPath() 'は、Bのメソッドを上書きしないと、実際に' A.prototype.getPath.call(new B()) 'を実行します(オブジェクトBのプロトタイプチェーンに' B.prototype.getPath'を作成します) )、明らかに '__dirname'はAのdirnameのままです。 – Xlee
__dirnameの代わりに他のオプションはありませんか?それはBのdirを返すでしょうか? –