我想知道在Javascript中对象属性是否有可能产生以下行为:
console.log(obj); // output 'Something'
console.log(obj.prop_a); // output 'A'
还
var a = obj; // a === 'Something'
var b = obj.prop_a; /// b === 'A'
对象类型有两个版本,一个是直接访问它,另一个是当你访问其中一个子道具时
由于
答案 0 :(得分:3)
是的,您可以覆盖toString()
方法:
obj.toString = function() {
return "Something";
}
答案 1 :(得分:0)
如果您需要在浏览器中使用它,则必须挂钩控制台,并覆盖对象的toString方法。
You could hook the browser console, and redefine it afterwards:
var obj = {
prop_a: "A",
toString: function() {
return "Something";
}
};
var origConsole = console;
console = {
log: function(data) {
if (typeof data === "object") {
origConsole.log(data.toString());
} else {
origConsole.log(data);
}
}
}
console.log(obj);