我想将bar
添加到items
数组中。
let myObj = {
item:_ => ['foo']
}
尝试这样做:
myObj.item().push('bar')
但是当我做console.log(myObj.item())
时,我又回来了['foo']
这种行为有任何原因吗?
答案 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());