私はJavascriptでアサートメソッドを作成しようとしています。私はarguments.callee.callerと友人としばらくの間闘ってきましたが、呼び出し関数の完全なテキストを確実に取得し、そのテキスト内で現在の関数と一致するものを見つける方法を見つけることができません。評価の前に引数式を取得する
私はこのように私の機能を使用できるようにしたい:
var four = 5;
function calculate4() { return 6; }
assert(4 == 2 + 3);
assert(4 == four);
assert(4 == calculate4());
assert(4 != 3 && 2 < 1)
と、このような出力が得られます。
アサーション4 == 2 + 3に失敗しました。 アサーション4 == 4が失敗しました。 アサーション4 == calculate4()に失敗しました。私は余分なパラメータを渡して避けるしたい非常に有用ではありません アサーション4!=今&& 2
3は、私がずっとAssertion false failed.
を超えて取得することはできません...(などthis
をなど)なぜなら、アサーションコードを可能な限りきれいに保つことと、それが何度も何度もタイプされるからです。私はそれを文字列にするのは気にしませんが、その文字列をeval()しようとするとスコープの問題が心配です。私に他の選択肢がない場合、または私の懸念が悪い場合は、そう言いなさい。
私はこれをWindows上の.htaアプリケーションで実行していますので、実際はjscriptなので、ファイルシステムやActiveXなどにフルアクセスできるので、システム固有の解決策が得られます(Firebugなどは不要です)。 )。しかし、私は一般的な解決法を好むだろう。
私の不安を確認していただきありがとうございます。私はこれを数時間長くするつもりです、誰もより良い解決策を持っていなければ、私はそれを受け入れます。 –
@reem:心配する必要はありません:-)最近Internet Explorerのコンソールアプリケーションを作成していたので、このようなことは役に立たなかったでしょう。 –