首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JavaScript对象中用另一个键值分配键值

在JavaScript对象中用另一个键值分配键值
EN

Stack Overflow用户
提问于 2015-11-06 19:17:25
回答 2查看 4K关注 0票数 3

例如,我知道在Javascript中用前面的键值设置键值是可能的。

代码语言:javascript
复制
var obj = {
            one: "yes",
            two: obj.one
          }

Obj-2现在等于“是”。

当键在函数中时,如何设置值?

代码语言:javascript
复制
var obj = {
             one: function () {
                  return(
                     two: "yes"
                     three: ?? //I want to set three to the value of two
                  )
             }
          }

我希望有三个包含两个的值,即obj.one()应该返回{2:“是”,三:“是”}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-06 19:42:51

你的第一段代码也不起作用。它抛出了TypeError: obj is undefined

您可以使用

代码语言:javascript
复制
var obj = new function(){
  this.one = "yes",
  this.two = this.one
}; // { one: "yes", two: "yes" }

对于第二个问题,您可以使用

代码语言:javascript
复制
var obj = {
  one: function () {
    return new function() {
      this.two = "yes",
      this.three = this.two
    };
  }
};
obj.one(); // { two: "yes", three: "yes" }
obj.one() === obj.one(); // false

注意,one的每个调用都将生成对象的一个新副本。如果你想重用前一个,

代码语言:javascript
复制
var obj = {
  one: (function () {
    var obj = new function() {
      this.two = "yes",
      this.three = this.two
    };
    return function(){ return obj }
  })()
};
obj.one(); // { two: "yes", three: "yes" }
obj.one() === obj.one(); // true
票数 2
EN

Stack Overflow用户

发布于 2015-11-06 19:30:20

尝尝这个

代码语言:javascript
复制
var obj = {
    one: function () {
            this.two = "yes"
            this.three = "??"
    }
}

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

https://stackoverflow.com/questions/33574082

复制
相关文章

相似问题

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