2016-03-23 3 views
2

То, что я хочу достичь, кажется довольно простым, но я не уверен, что это возможно.Объект Javascript со значением по умолчанию

Я хотел бы иметь объект, который возвращает определенное значение, если свойство не указано. Например:

console.log(obj) // Returns "123" 
console.log(obj.x) // Returns "ABC" 
+1

Нет, это невозможно. Для чего вам это нужно? – Bergi

+0

вы не можете сделать это для 'console.log (obj)', но вы можете сделать это для 'console.log (obj + '')' –

+1

Посмотрите [здесь] (http://stackoverflow.com/a/13606589/1048572) хотя – Bergi

ответ

1

Переопределите метод toString() в прототипе вашего пользовательского объекта.

function MyObj() { 
} 
MyObj.prototype.toString = function() { 
    return '123'; 
}; 
var obj = new MyObj(); 
obj.x = 'ABC'; 
console.log(obj + ''); 
console.log(obj.x + ''); 
+0

Как указывает @zb, это работает только путем принудительного ввода объекта в строку с '+ ''' в вызове журнала. –

Смежные вопросы