如果我创建一个对象并使用console.log,它将展开对象,我可以看到对象属性。如果我使用警报则不会。有没有办法在警报中做同样的事情?
car=new Object();
car.wheels=4;
car.make="honda";
car.owner="me"
console.log(car);
输出:对象{wheels:4,make:“honda”,所有者:“我”}
alert(car)
输出是[对象对象]
如何获得警报的相同输出?
在控制台日志方法中,该参数被视为对象。因此,对象可以是任何形式,如数组,字符串,整数等,我们将获取内容。但是在alert方法中,它只接受字符串。因此,如果发送对象,它将把它转换为对象的字符串版本(对象对象)。如果对对象进行字符串化并作为参数发送到alert方法,它将显示内容。试试这个,
window.alert(JSON.stringify(object));
正如其他人所说,你使用JSON.stringify
。
但我想提出一些其他的建议。我不知道你是否已经知道这些,但你的例子表明你可能会欣赏这些提示。
new Object()
而只是创建对象:var car = {
wheels: 4,
make: "honda",
owner: "me"
}
var
,let
或const
。如果不这样,则在全局范围内创建它们。在浏览器中,您将在window
对象上创建新变量。JSON.stringify
有其他参数:JSON.stringify(value[, replacer[, space]])
replacer
并不经常使用,但它可以提供过滤和防止递归数据的方法。
space
参数可以是0到10之间的数字,也可以是0到10之间字符串中的字符数。这表示在输出中缩进每个级别的数量。
function replacer(key, value) {
if (typeof value === 'string') {
return undefined;
}
return value;
}
var foo = {
company: 'Sony',
model: 'Playstation',
version: 4,
pricing: [
{
pro: false,
price: 299.00
},
{
pro: true,
price: 399.00
}
],
comments: 'none'
};
alert(JSON.stringify(foo, replacer, 2));
alert(JSON.stringify(foo, replacer, '----'));
你可以使用这个alert(JSON.stringify(object))