首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在javascript中向对象的方法添加项

如何在javascript中向对象的方法添加项
EN

Stack Overflow用户
提问于 2018-07-27 18:58:26
回答 2查看 57关注 0票数 -1

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

代码语言:javascript
复制
let myObj = {  
  item:_ => ['foo']
}

尝试这样做:

代码语言:javascript
复制
myObj.item().push('bar')

但是当我做console.log(myObj.item())的时候,我得到了['foo'],有什么原因导致这种行为吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-27 19:04:31

代码语言:javascript
复制
let myObj = {  
   item: _ => ['foo'] // you make a new function called item that ALWAYS returns an array called foo
}

myObj.item().push('bar')实际上将bar推送到函数myObj.item()返回的数组中。但这并不是持久的。下次调用myObj.item()时,您仍然会得到'foo‘,因为这是函数返回的内容。

如果您想要直接推送到item数组,请将item创建为具有初始值'foo‘的数组,如下所示。

代码语言:javascript
复制
let myObj = {  
   item: ['foo'] 
}

然后就可以执行myObj.item.push('bar');

票数 1
EN

Stack Overflow用户

发布于 2018-07-27 19:43:46

您的方法没有被更新,而是将'bar‘推入由您的方法返回的数组中,您可以通过这种方式控制日志记录该返回的数组。

代码语言:javascript
复制
        let myObj = {
            item: _ => ['foo']
        }

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

在item方法返回something.So之前,您可以决定它将返回什么(evaluate to)。

代码语言:javascript
复制
        let myObj = {
            what: ['foo'],
            item: _ => myObj.what
        }
        myObj.what.push('bar');

        console.log(myObj.item());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51556546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档