ก่อนอื่นแทนที่toString
วัตถุของคุณหรือต้นแบบ:
var Foo = function(){};
Foo.prototype.toString = function(){return 'Pity the Foo';};
var foo = new Foo();
จากนั้นแปลงเป็นสตริงเพื่อดูการแสดงสตริงของวัตถุ:
//using JS implicit type conversion
console.log('' + foo);
หากคุณไม่ชอบการพิมพ์พิเศษคุณสามารถสร้างฟังก์ชันที่บันทึกการแสดงสตริงของอาร์กิวเมนต์ไปยังคอนโซล:
var puts = function(){
var strings = Array.prototype.map.call(arguments, function(obj){
return '' + obj;
});
console.log.apply(console, strings);
};
การใช้งาน:
puts(foo) //logs 'Pity the Foo'
puts(foo, [1,2,3], {a: 2}) //logs 'Pity the Foo 1,2,3 [object Object]'
ปรับปรุง
E2015 มีไวยากรณ์ที่ดีกว่ามากสำหรับสิ่งนี้ แต่คุณจะต้องใช้ทรานสไพเลอร์เช่นBabel :
// override `toString`
class Foo {
toString(){
return 'Pity the Foo';
}
}
const foo = new Foo();
// utility function for printing objects using their `toString` methods
const puts = (...any) => console.log(...any.map(String));
puts(foo); // logs 'Pity the Foo'
typeof
)