web-dev-qa-db-ja.com

ReflectオブジェクトはJavaScriptで何をしますか?

JavaScriptのReflectオブジェクトのMDNに空白のスタブを見ましたが、Googleで何かを見つけることはできません。今日私はこれを見つけました http://people.mozilla.org/~jorendorff/es6-draft.html#sec-reflect-object そして、レルムとローダー機能を除いてプロキシオブジェクトに似ています。

基本的に、私が見つけたこのページがReflectの実装方法を説明しているだけなのか、それとも単にその文言を理解できないのかはわかりません。誰かが私に一般的にReflectのメソッドが何をするのか説明してもらえますか?

たとえば、私が見つけたページでは、Reflect.apply ( target, thisArgument, argumentsList )を呼び出すと、「thisArgumentとargsの引数でtargetの[[Call]]内部メソッドを呼び出した結果を返す」と書かれています。しかし、それは単にtarget.apply(thisArgument, argumentsList)を呼び出すこととはどう違うのですか?

更新:

@Blueのおかげで、このページをwikiで見つけました http://wiki.ecmascript.org/doku.php?id=harmony:reflect_api&s=reflect 私の知る限りでは、 Reflectオブジェクトは、転送を容易にするためにプロキシによってトラップされる可能性のあるすべてのアクションのメソッドバージョンを提供します。しかし、それがどのように完全に必要なのか分からないので、それは少し奇妙に思えます。しかし、それ以上のこと、特にdouble-liftingしかし、それは古いプロキシ仕様を指します/

71
Jim Jones

Wikiにあるドラフト文書を見て、

http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts

ドラフトで明確になっている「単一の通常のオブジェクト」に関する行を取得します。関数定義もあります。

Wikiはemcascript Webサイトからリンクを見つけることができるため、信頼性が高いはずです。

http://www.ecmascript.org/dev.php

しかし、Googleで最初のリンクを見つけましたが、wikiを直接検索して見つけることができませんでした。

5
Blue

GitaarLabの答えは非常に良いですが、ReflectオブジェクトはMDNによって完全に文書化されていることを指摘したかったのです すべてのメソッドの詳細と例を含む 一部の人々はおそらく代わりにそれをチェックすることを好むでしょう。

3
rafaelbiten