如何在javascript中将项目添加到对象的方法

时间:2018-07-27 10:58:26

标签: javascript arrays object

我想将bar添加到items数组中。

let myObj = {  
  item:_ => ['foo']
}

尝试这样做:

myObj.item().push('bar')

但是当我做console.log(myObj.item())时,我又回来了['foo'] 这种行为有任何原因吗?

2 个答案:

答案 0 :(得分:1)

select-string -pattern "option title","selected" -Path "C:\Users\am281h\Desktop\page.htm" -AllMatches

let myObj = { item: _ => ['foo'] // you make a new function called item that ALWAYS returns an array called foo } 实际上将bar推到函数myObj.item().push('bar')返回的数组。但这并没有持久。下次调用myObj.item()时,您仍然会得到['foo'],因为那是函数返回的结果。

如果要直接推送到项目数组,则像这样将item创建为具有初始值['foo']的数组。

myObj.item()

然后您可以let myObj = { item: ['foo'] }

答案 1 :(得分:0)

您的方法没有更新,而是将'bar'推入方法返回的数组中,并且您可以通过这种方式对返回的数组进行日志记录。

        let myObj = {
            item: _ => ['foo']
        }

        let arrayInAir = myObj.item();
        arrayInAir.push('bar');
        console.log(arrayInAir);

您可以先确定item方法将返回(评估)什么,然后再返回一些东西。

        let myObj = {
            what: ['foo'],
            item: _ => myObj.what
        }
        myObj.what.push('bar');

        console.log(myObj.item());