1

関数のみのJSフレームワークを作成しているペットプロジェクトに取り組んできました...そして、以下を簡素化する方法があるかどうか確信が持てませんでした...この場合、動的変数の割り当て...

String.prototype.is = function(x) {window[this]=window[this]||x;}
"a".is(42);
alert(a); // window.alert shows 42

関数でこれを行う簡単な方法はありますか? これは、関数のみのフレームワークを実現することのみを目的としています...したがって、「a = 42;」を使用します。は許可されていません...数値だけでなく、文字列、配列、ブール値、日付などにも使用できるようにしたい.

4

2 に答える 2

2

あなたの考えには問題があります。ネイティブ型のプロトタイプを変更するのは良い習慣ではありません。これにより、サードパーティのコードを使用すると、予期しない (場合によってはデバッグがほとんど不可能な) 動作が発生する可能性があります。

あなたの主なアイデアに問題はありませんが、操作したいオブジェクトを別のオブジェクトで完全に制御してラップし、ラッパーによって提供される追加の動作でこれらのオブジェクトを装飾することをお勧めします。これは jQuery のアプローチであり、より安全です。

于 2012-10-12T01:10:22.783 に答える
0

新しい ES 5 ゲッターとセッターを使用できます。 https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/get

于 2012-10-12T01:08:13.503 に答える