Я ничего не знаю. Лучше всего будет определить метод toString ()
для объекта, который вы хотите зарегистрировать, а затем вызвать его прямо или косвенно:
var o = {};
o.toString = function() {
return "Three blind mice";
};
console.log("" + o);
console.log(o.toString());
Можно сделать это в Chrome в наше время с devtools пользовательским средством форматирования. Они, кажется, официально не документируются нигде и не включены по умолчанию - таким образом, необходимо включить им в (Настройки Инструментов Dev)>, Консоль> Включает Пользовательские Средства форматирования. Но тогда можно добавить пользовательское средство форматирования для объекта:
class CustomClass {
constructor (foo, bar) { this.foo = foo; this.bar = bar; }
}
window.devtoolsFormatters = (window.devtoolsFormatters || []).concat([{
header: (obj) => {
if (obj instanceof CustomClass) {
return ['div', {}, `CustomClass(${obj.foo}, ${obj.bar})`];
} else {
return null; // fall back to default formatter
}
},
hasBody: () => true, // if the user can expand to get more info
body: (obj) => {
return ['div', {},
['span', {style: 'display: block; font-weight: bold'}, 'CustomClass'],
['span', {style: 'display: block; margin-left: 2em'}, `foo: ${obj.foo}`],
['span', {style: 'display: block; margin-left: 2em'}, `bar: ${obj.bar}`],
];
}
}]);
Несколько слов предупреждения:
div
и span
работать; p
, strong
, и другие элементы все перестали работать. Но можно эмулировать их с CSS. window.devtoolsFormatters
массив является пустым по умолчанию, но я добавил проверку, потому что расширения могут уже добавить свои собственные средства форматирования. можно найти немного больше информации здесь: https://docs.google.com/document/d/1FTascZXT9cxfetuPRT2eXPQKXui4nWFivUnS_335T3U/preview
Вы должны получить лучший результат от Firebug, вы должны получить
var a = function(){};
console.log(a); // output: function
a.toString = function(){ return 'a'; };
console.log(a); // output: function, {toString()}
a.valueOf = function(){ return 'v'; };
console.log(a); // output: function, {toString(), valueOf()}
http://code.google.com / p / fbug / issues / detail? id = 3117