gpt4 book ai didi

javascript - 方括号在构造函数中设置此属性

转载 作者:行者123 更新时间:2023-12-01 01:11:18 25 4
gpt4 key购买 nike

我正在尝试将 HTML 文档的所有元素收集到一个 JS 对象中。看看这两种方式,第一种按预期工作,而使用构造函数则不起作用。我做错了什么?

var elements1 = {};

document.querySelectorAll('*[id]').forEach(function(element) {
elements1[element.id] = element;
});

var elements2 = new Elements();

function Elements() {
document.querySelectorAll('*[id]').forEach(function(element) {
this[element.id] = element;
});
}

console.log(elements1);
console.log(elements2);
<div id="division1"></div>
<div id="division2"></div>
<div id="division3"></div>

最佳答案

在第二个示例中,this 指向错误的位置。

var elements1 = {};

document.querySelectorAll('*[id]').forEach(function(element) {
elements1[element.id] = element;
});

var elements2 = new Elements();

function Elements() {
var that = this;
document.querySelectorAll('*[id]').forEach(function(element) {
that[element.id] = element;
});
}

console.log(elements1);
console.log(elements2);
<div id="division1"></div>
<div id="division2"></div>
<div id="division3"></div>

关于javascript - 方括号在构造函数中设置此属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55129556/

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