対象オペレータ場合において
変換規則は次のとおりです。
1)第一のvalueOf()メソッドは、生データ、リターン、または2)自分自身を呼び出します。
2)次に、toString()メソッド、そうでない場合、オリジナルデータ、捕捉されない例外TypeError自身を呼び出します。
代わりに、Dateオブジェクト、最初の呼び出しのtoString()、コールのvalueOf後の():1つの例外があります。
VAR OBJ = { のvalueOf(){ 戻り 5 。}、 のtoString(){ リターン 'ハロー' ; } } 1 + OBJ。// 6; "1" + OBJ。// "15"
元のデータ演算子の場合には2
との変換:
オペレータの値が必要とされる場合1)のvalueOf()を呼び出します。
オペレータが文字列が必要な場合2)、toString()を呼び出します。
3)のいずれかの値は、文字列、優先呼のvalueOf()とすることができる場合。
// ブール値の例 (真の).valueOf(); // 1 (真の).toString(); // "真の" 1+ trueに ; // 2 +」1" trueに ; // 1true
ツールオブジェクトの場合には3列()関数
との変換:
1)最初の呼のtoString()、元のデータを返すかどうかを決定する;そうである場合、終了、または2)
2))(のvalueOfを呼び出します
VAR OBJ = { のvalueOf(){ 戻り 5 。}、 のtoString(){ リターン 'ハロー' ; } }。 ストリング(OBJ)。// 「こんにちは」
ツールオブジェクトの場合には4ナンバー()関数
との変換:
1)最初の呼のvalueOf()メソッドは、もし元のデータに戻り、終了し、そうでなければ2)
2)のtoString()メソッドを呼び出します
VAR OBJ = { のvalueOf(){ 戻り 5 。}、 のtoString(){ リターン 'ハロー' ; } }。 番号(OBJ)。// 5