我编写了一个函数,该函数读取html中的数字列表并将其写入数组中,效果很好:
function initialize(id){
images = [];
function PushIn_images(item) {
images.push(item.innerHTML);}
document.getElementById("images"+id).childNodes.forEach(PushIn_images);
console.log(images)}
initialize(105)
<div id="images105"><p>490</p><p>491</p><p>492</p><p>493</p><p>494</p><p>495</p><p>496</p><p>497</p></div>
然后,我想将此函数构造为一个构造函数,该构造函数在其创建的对象属性中写入相同的信息。但是它说该属性是未定义的,尽管我已将其显式声明为数组:
function initialize(id){
this.id = id
this.images = new Array();
function PushIn_images(item) {
this.images.push(item.innerHTML);}
document.getElementById("images"+this.id).childNodes.forEach(PushIn_images);
}
var img_list = new initialize(105);
console.log(img_list.images)
<div id="images105"><p>490</p><p>491</p><p>492</p><p>493</p><p>494</p><p>495</p><p>496</p><p>497</p></div>
为什么不起作用?我如何解决它来实现我想要的?