以下为ChatGPT自动生成的解答,正确与否请自行判断。
BFE.devAI解答 - JavaScript 代码题
17. 实现一个DOM element store
可以利用DOM元素的uniqueID
属性来实现Node Store。uniqueID
是一个DOM元素的唯一标识符,可以用作对象属性的key。
因此,可以将DOM元素的uniqueID
属性作为key,将value作为对象属性存储在一个对象中。
示例代码:
class NodeStore {
constructor() {
this.store = {};
}
set(node, value) {
if (!node.uniqueID) {
node.uniqueID = 'id_' + new Date().getTime(); // 给DOM元素添加uniqueID
}
this.store[node.uniqueID] = value; // 将value存储在对象中
}
get(node) {
return this.store[node.uniqueID];
}
has(node) {
return node.uniqueID in this.store;
}
}
该实现方法时间和空间复杂度较低,只需要在新建DOM元素时添加一个uniqueID
属性,并将value存储在对象中。在获取和判断是否存在时,直接使用对象属性即可,不需要遍历整个DOM节点。