javascript - Rhino JSインタープリターとSpiderMonkeyインタープリター-異なる戻り値

原文 javascript

私は2つの異なるJavascriptインタープリター(RhinoとSpiderMonkeyをターミナルで使用しています)を使用しているので、たとえば、あるオブジェクトでtoString()メソッドやvalueOf()メソッドを呼び出したい場合、インタープリターによって異なる結果が得られます。このような:

**Rhino** 
  var f={x:10}  f.toString() result [object Object] 

                f.valueOf() result [object Object] 


**SpiderMonkey**
  var f={x:10}  f.toString() result  "[object Object]" //in quotes 

                f.valueOf() result ({x:10})


RhinoはJavaで、SpiderMonkeyはCで記述されていることを知っています。なぜ異なる結果が得られるのですか?
答え
戻り値は同じですが、表示が異なります。 Rhinoはresult.toString()を出力しているだけです。resultは、評価した式の値です。どちらの場合でも、f.valueOf() === ff.valueOf().toString() === f.toString().toString()であるため、同じ結果が得られます。

SpiderMonkeyは、代わりにresult.toSource()を出力しているように見えます。文字列を引用符で囲み、f.valueOf()をオブジェクトリテラルとしてフォーマットします。
関連記事

javascript - jQueryを使用して<head>からすべての<meta ..>を読み取るにはどうすればよいですか?

javascript - 私の最初のWebアプリケーションを構築するための優れたリソース(おそらく、純粋なHTML5 / Javascript / CSS3を使用するだけ)

javascript - ページコンテンツがAjaxで読み込まれた後にJavaScriptを読み込む

javascript - jquery編集可能テーブル:特定のセルを編集可能にするにはどうすればよいですか?

javascript - FlashオブジェクトがフルスクリーンモードであることをJavaScriptから確認する方法

javascript - jqueryを使用して、入力テキストボックスに基づいて使用可能なオプションを変更および表示[削除/追加]

javascript - キャンバスのサイズが相対的な場合、キャンバス上の正しいマウス位置を取得しますか?

javascript - jqueryを使用して更新を表示する

javascript - JSONオブジェクトの親ノードへのアクセス

javascript - アニメーションをバックグラウンドで別の要素の背後に保持するにはどうすればよいですか?