0

次のように JavaScript クラスを作成しました。

function MyClass() {
    this.myProp = '';
}
MyClass.prototype.myTestFunction = function() {
    alert('test');
}

ここで、このクラスをインスタンス化します。

var myTestInstance = new MyClass();
myTestInstance.myTestFunction();

これにより、'test' でアラートが出力されます。

ここで、変数名 'myTestInstance' をパラメーターとして渡すことなく、関数 'myTestFunction()' に入れたいと考えています。

呼び出された関数内からインスタンスの変数名を見つけることは何とか可能ですか?

ご協力ありがとうございました!

編集:これが必要な理由を追加するだけです:実際のプロジェクトで作成するすべてのインスタンスは、特別な HTML テーブルです。ヘッダー フィールドには、すべての列の並べ替えボタンがあります。したがって、リンク要素を動的に追加しましたhref='javascript:myTableInstance.sort()'。これをインスタンスで動的に出力するには、変数名が必要でした。

別のより良い解決策はありますか?

4

1 に答える 1

5

いいえ、意味がありません。まず第一に、インスタンスは単一の変数に関連付けられていません (多くの変数によって参照される可能性があります。おそらく何らかの配列のメンバーとして参照される可能性があります)。インスタンス」は答えられません。次に、myTestFunction と myTestInstance のスコープが大きく異なる可能性があります。通常、 myTestFunction は myTestInstance が定義されているスコープを「認識」しないため、変数の名前を知っていても役に立ちません。

myTestFunction 内で「this」を使用する必要があります。

于 2012-06-06T09:33:56.617 に答える