前のトピックを表示 :: 次のトピックを表示 |
著者 |
メッセージ |
Nobuyuki
登録日: 2004年11月 18日 記事: 204
|
件名: [草稿]JavaScript-DOM Prototypes in Mozilla 投稿時間: 2006年3月22日(水) 23:09 |
|
|
Nobuyuki です。
上記の草稿を公開します。Review をよろしくお願いします。
古い文書ですので、技術的に陳腐化している部分もあるかもしれません。
そういう観点からも、見直しいただければありがたいです。
よろしくお願いします。
以上 |
|
|
Yusuke SATO
登録日: 2005年3月 07日 記事: 76 所在地: 千葉県
|
件名: Re: [草稿]JavaScript-DOM Prototypes in Mozilla 投稿時間: 2006年4月23日(日) 00:51 |
|
|
こんにちは、佐藤です。お久しぶりです。
JavaScript は全く分からないのですが、少し目を通してみました。
まず一点、全体を通して "have" を「備えている」と訳されているのが気になりました。オブジェクト A 中にプロパティ B がある、というような場合、「オブジェクト A がプロパティ B を持っている」と訳した方が自然なのではないかと思います。
Nobuyuki wrote: | DOM ノードが Mozilla の JS(ジャバスクリプト) からアクセスされる時、…… |
ここは能動態にした方が分かりやすいのでは。
Quote: | Mozilla の JS(ジャバスクリプト)が DOM ノードにアクセスする時、…… |
Quote: | ... and the wrapper is exposed to JS as the JS representation of the DOM node. |
Nobuyuki wrote: | ラッパーは DOM ノードの JS の代理として JS へ示されます。 |
この "JS representation" は「JavaScript の処理系が使っているような表現で」の意味ではないかと思います(いい表現が見つからなくて申し分けないのですが……)。
Quote: | In the case where the C++ object has class info (nsIClassInfo), the JSObject is a more or less empty JSObject which is not really that special. |
Nobuyuki wrote: | この時 C++ オブジェクトが class info (nsIClassInfo) を備えていると、JSObject は大体、実際はそれほど特殊でない空の JSObject です。 |
最後の日本語がちょっと不自然かな?と思ったので、参考までに意訳してみました。
Quote: | C++ オブジェクトが class info (nsIClassInfo) を備えている場合、 JSObject は空であることが大体です(このような JSObject はそれほど特殊なものではありません)。 |
Quote: | but rather properties of the prototype of the JSObject for the wrapper |
Nobuyuki wrote: | ラッパーに対する JSObject のプロトタイプののプロパティです |
"the JSObject for the wrapper" は「JSObject はいろいろあるけれど、その中でも wrapper の役割をしているもの」の意味ではないかと思います。こんな感じかな?
Quote: | ラッパーになっている JSObject のプロトタイプのプロパティです |
Quote: | (unless the C++ object's class info has the flag nsIXPCScriptable::DONT_SHARE_PROTOTYPE set, but lets assume that's not the case here). |
Nobuyuki wrote: | (その時 C++ オブジェクトが nsIXPCScriptable::DONT_SHARE_PROTOTYPE のセットを備えていなければですが、ここでは、備えてないとします) |
"set" の字面を見て、「nsIXPCScriptable::DONT_SHARE_PROTOTYPE は、複数のフラグを OR したものなのかな?」と思ったのですが、 XULPlanet のドキュメント を見ると、そうではないようです。 DONT_SHARE_PROTOTYPE の値は 0x04000000 でした。
ということは、この "has" は使役の意味ですね。
Quote: | (ここで C++ オブジェクトの class info が nsIXPCScriptable::DONT_SHARE_PROTOTYPE フラグを立てている場合は別ですが、それは考えないものとします) |
Nobuyuki wrote: | class info を備えているクラスへ XPConnect が生成するプロトタイプオブジェクトは領域(window)内で共用されます。 |
「共用」は「共有」の typo ですかね?
Quote: | This sharing of prototypes lets users do cool things like modify how all instances of a given class works by modifying the prototype of one instance. |
Nobuyuki wrote: | このようにプロトタイプを共有化し、ユーザは、1つのインスタンスのプロトタイプを変更することで、所定のクラスのすべてのインスタンスがどのように機能するかについて、変更したり素晴らしいことが実現できます。 |
ここは "This sharing of prototypes" が主語ですね。で、次のようになるのではないかと。
Quote: | プロパティが共有されることで、一つのインスタンスのプロトタイプに変更を加えるだけで、そのクラスの全てのインスタンスの動作に変更を加える、といった素晴らしいことが可能になります。 |
これで日本語がある程度自然になったと思うのですが、「そのクラス」ってどのクラスだよ、というツッコミが入るかもしれません。ちょっと読みにくくなりますが、各単語の意味の理解を推測に頼らないようにしたい、ということであれば、次のようになると思います。
Quote: | プロパティが共有されることで、あるクラスのインスタンス全ての動作を、一つのインスタンスのプロパティを変更するだけで変更する、といった素晴らしいことが可能になります。 |
Quote: | This would make every image in this document have a callable foo property (i.e. a foo() method). |
Nobuyuki wrote: | このコードを使ったドキュメント中のすべてのイメージは呼び出し可能な foo プロパティ (例 foo() method) を備えます。 |
この "make" は「(対象)を~という状態にする」(make me feel ~ とか)の意味だと思うのですが、人以外にも使えるのかな?
Quote: | これで、ドキュメント中のすべてのイメージは、呼び出し可能な foo プロパティ(つまり、 foo() メソッド)を持つようになります。 |
____________________ Yusuke SATO
s-tatsuo@msf.biglobe.ne.jp |
|
|
|