gpt4 book ai didi

javascript - 为什么 document.write() 和 alert() 方法以不同方式呈现 JavaScript 对象?

转载 作者:行者123 更新时间:2023-11-30 08:53:02 27 4
gpt4 key购买 nike

在打印数组和对象时,document.write()方法和window.alert()有什么区别?

此代码示例中显示了不同的行为:

var arr = new Array("Maizere","Pathak");

document.write(arr); // output: Maizere,Pathak
alert(arr); // output: maizere,pathak

为什么他们都打印值? alert() 不应该打印 Object Object 吗?

对于 DOM 对象,它会打印 [object HTML collection],这里是打印值。

最佳答案

JavaScript 中的对象有一个toString 方法。只要以预期文本的方式使用对象,就会调用此方法。例如,以下输出 [object Object]:

alert({});

数组有它们自己的 toString 方法版本,它们做的事情完全不同。它们不显示类型,而是显示内容,并用逗号连接。如果愿意,您可以替换数组 toString 方法:

var names = ['Jonathan', 'Sampson'];

names.toString = function () {
return this.length;
};

alert(names); // Outputs 2

如果你愿意,你也可以使用其他的toString实现:

document.toString.call(names); // [object Array]

有关其他信息,请参阅 toString on MSDN .

关于javascript - 为什么 document.write() 和 alert() 方法以不同方式呈现 JavaScript 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16115735/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com