📅  最后修改于: 2023-12-03 15:17:02.491000             🧑  作者: Mango
在 JavaScript 编程中,你可能期望可以很容易地复制一个对象,以便于对其进行修改,但是你会发现,直接使用 =
赋值语句只能复制对象的指针,而不是对象本身。因此,JavaScript 中基本上无法复制一个对象,尤其是当对象包含多个嵌套属性时。
幸运的是,在 HTML 中,我们可以使用 data-*
属性来保存对象数据,并在需要时轻松地复制这些数据。例如:
<div id="myData"
data-name="John"
data-age="30"
data-address="{ city: 'New York', zip: '10001' }"
></div>
然后,我们可以使用 JavaScript 的 getAttribute()
方法来从 data-*
属性中获取数据。例如:
var myDataEl = document.querySelector('#myData');
var name = myDataEl.getAttribute('data-name');
var age = myDataEl.getAttribute('data-age');
var address = JSON.parse(myDataEl.getAttribute('data-address'));
console.log(name, age, address);
// 输出:John 30 { city: 'New York', zip: '10001' }
data-*
属性只能存储字符串类型的数据,因此我们需要使用 JSON.stringify()
和 JSON.parse()
方法将对象转换为字符串并将其转换回对象。data-*
属性可能会变得很长,这样可能会影响 HTML 文档的可读性和性能。因此,建议仅在必要时使用该方法。data-*
属性需要使用小写字母和连字符,而不能使用大写字母和下划线。data-*
属性来保存对象数据。