2
達成したいことはかなりシンプルなようですが、可能かどうかはわかりません。デフォルト値のJavascriptオブジェクト
プロパティが指定されていない場合、特定の値を返すオブジェクトが必要です。例:
console.log(obj) // Returns "123"
console.log(obj.x) // Returns "ABC"
達成したいことはかなりシンプルなようですが、可能かどうかはわかりません。デフォルト値のJavascriptオブジェクト
プロパティが指定されていない場合、特定の値を返すオブジェクトが必要です。例:
console.log(obj) // Returns "123"
console.log(obj.x) // Returns "ABC"
カスタムオブジェクトのプロトタイプでtoString()
メソッドをオーバーライドします。
function MyObj() {
}
MyObj.prototype.toString = function() {
return '123';
};
var obj = new MyObj();
obj.x = 'ABC';
console.log(obj + '');
console.log(obj.x + '');
@zbが指摘しているように、これはオブジェクトをログ呼び出しで '+ ''で文字列に強制することによってのみ機能します。 –
いいえ、それはできません。これは何のために必要なのでしょうか? – Bergi
あなたは 'console.log(obj)'でそれを行うことはできませんが、 'console.log(obj + '')' –
でそれを行うことができます[こちら](http://stackoverflow.com)/a/13606589/1048572)しかし、 – Bergi