7

これに関する私のグーグルは失敗したので、ここに質問があります:

特定のフレームワークでJavaScript言語を拡張するために、独自のキーワードを追加できるかどうか疑問に思っています。

例えば

Object1 extends Object2

コード内でこのメソッドを実行することになります

inherit(Object1, Object2)

ここで、inheritは、プロトタイプのコピー、親のコンストラクターの追加などを処理する関数です。

これは実行可能ですか?もしそうなら、どのように?そうでない場合、これを行う他の良い方法はありますか?

ありがとう。

4

4 に答える 4

6

言語にキーワードを追加することはできませんが、すべてがオブジェクトであり、すべてをプロトタイピングで拡張できます。

私は通常crockfordにリンクしませんが、彼は実際にこれについてかなりまともなカバレッジをfoo.inherits(bar);持っています。これにより、希望する程度の形式の構文が得られます。これは非常に一般的なパターンです。

于 2009-10-01T20:08:47.823 に答える
5

この目的のために、sweet.jsを含むいくつかのJavaScriptマクロシステムが開発されています。Sweet.jsマクロシステムを使用すると、あるキーワードを別のキーワードに置き換えることができます(たとえば、functionキーワードをキーワードに置き換えるdef)。ただし、sweet.jsスクリプトを実行するには、まず、sweet.jsを使用してJavaScriptにコンパイルする必要があります。 jsコンパイラ。

于 2013-01-05T01:51:45.780 に答える
1

次のようにするのは簡単です。

window.inherit = function(...params){your code here}

ウィンドウオブジェクトに戻ることなくウィンドウのメソッドを呼び出すことができるので、次のように呼び出すことができます。inherit(arr1, arr2)

于 2020-08-22T12:01:26.420 に答える
0

JavaScriptに新しいキーワードを追加することはできません。ただし、クラスを作成するための独自の優れたインターフェイスを作成することもできます。おそらく、すでに存在する無数のライブラリ、フレームワーク、ツールキットの1つからインスピレーションを得ています。

于 2009-10-01T20:08:10.087 に答える