我正在尝试编写一个函数,该函数接受用户输入到控制台的参数,将其添加到数组并返回它。 这是我的代码。
function Album(){
this.listPhotos=["bee", "ladybug", "caterpillar", "ant"];
this.addPhoto = function(x){
listPhotos.push("x");
console.log (x.listPhotos);
}
}
答案 0 :(得分:0)
您需要引用具有实例化对象属性的数组。在您的代码中,普通变量listPhotos
不会在任何地方声明。
使用this
引用当前函数的调用上下文(在这种情况下,它是实例化的对象):
function Album(){
this.listPhotos=["bee", "ladybug", "caterpillar", "ant"];
this.addPhoto = function(x){
this.listPhotos.push(x);
console.log(this.listPhotos);
}
}
const myAlbum = new Album();
myAlbum.addPhoto("anotherphoto");

另一种选择是将数组声明为对象中的独立变量(不是作为对象的属性),但是你必须确保不要混淆这两个方法:
function Album(){
const listPhotos=["bee", "ladybug", "caterpillar", "ant"];
this.addPhoto = function(x){
listPhotos.push(x);
console.log(listPhotos);
}
}
const myAlbum = new Album();
myAlbum.addPhoto("anotherphoto");

答案 1 :(得分:0)
你有一些错误:
listPhotos.push
应为this.listPhotos.push
x
而不是字符串x
this.listPhotos
而不是x.listPhotos
function Album() {
this.listPhotos = ["bee", "ladybug", "caterpillar", "ant"];
this.addPhoto = function(x) {
this.listPhotos.push(x);
console.log(this.listPhotos);
}
}
let a = new Album()
a.addPhoto('123')