如何编写一个带参数的函数并将其添加到数组中?

时间:2018-04-28 03:06:46

标签: javascript function

我正在尝试编写一个函数,该函数接受用户输入到控制台的参数,将其添加到数组并返回它。 这是我的代码。

function Album(){
  this.listPhotos=["bee", "ladybug", "caterpillar", "ant"];
  this.addPhoto = function(x){
  listPhotos.push("x");
  console.log (x.listPhotos);
  }
}

2 个答案:

答案 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)

你有一些错误:

  1. listPhotos.push应为this.listPhotos.push
  2. 您应该推送变量x而不是字符串x
  3. 记录时,您需要this.listPhotos而不是x.listPhotos
  4. 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')