如何声明多个具有相同值的变量

Posted

技术标签:

【中文标题】如何声明多个具有相同值的变量【英文标题】:how to declare multiple variables with the same value 【发布时间】:2022-01-11 06:25:03 【问题描述】:

为了防止创建具有相同类型的每个变量,我这样声明它们:

  data () 
    return 
      today,tomorrow: new Date(),
    ;
  ,

我在 intellij 终端中得到的只是一个错误

错误“今天”未定义 no-undef

是我弄错了语法还是无法处理?

【问题讨论】:

在对象文字中是不可能的。你需要一个变量。 【参考方案1】:

您正在返回一个对象,在一个对象中使用逗号, 您列出了该对象的不同属性,因为您在键入逗号之前没有定义今天,所以您告诉对象今天现在是未定义的。

最好只声明两个属性或不使用对象。

function data() 
  let sameVariable = new Date();
  return 
    today: sameVariable,
    tomorrow: sameVariable,
  ;

这样您现在可以使用 obj.today 和 obj.tomorrow 访问变量

也许看看对象是如何工作的(那是在使用... 返回某些东西时) 您在示例中返回了一个对象

【讨论】:

创建第三个变量比使用 = new Date(); 初始化今天和明天要好。 ? 如果您在两个声明中都键入new Date(),您将有两个引用的日期,通过事先声明变量,您基本上在查看todaytomorrow 时告诉代码查看在存储中的同一个地方(这里是 sameVariable 所在的地方)。这只是优化。因此,只要两个日期相同并且您现在不说tomorrow = 其他内容,您就可以使用相同的存储空间,从而节省一些;)如果您对此感兴趣,可以查找引用/指针/存储 是的,在对象内部没有其他方法可以使属性相同,除非您事先声明它(然后它们完全相同)或分别向两者声明相同的事物(然后它们看起来相同,但不共享相同的参考存储) 稍后在我的代码中,我明天附加了 1 天,所以使用相同的参考不是解决方案 imo【参考方案2】:

简单。你不能。在 JS 对象和 JSON 语法中,您不能在一个表达式中声明和初始化多个变量。

如果您需要多个具有相同值的变量,只需从设置函数中返回即可。

setup()
   const now = new Date();
   return 
      today: now,
      tomorow: now
   

您可以在“创建”功能中创建它。

created()
   this.today = new Date();
   this.tomorrow = new Date();

但请注意。 Date 是 Data 类的实例。所以如果有两个变量指向它,那么你必须记住,今天改变道具会影响明天。例如。如果你的 today 和 tommorow 变量指向一个 Date 对象,那么 today.setHours 也会影响 tommorow。

【讨论】:

以上是关于如何声明多个具有相同值的变量的主要内容,如果未能解决你的问题,请参考以下文章

如何保存更新后与以前具有相同值的变量?

如何在 jdbcTemplate 中为具有相同值的多个参数标记传递参数?

如何使 dijit.form.Select 与具有相同值的多个项目一起使用?

在Java中将多个变量初始化为相同的值

聚合具有两个或多个具有相同值的列的行

是否有简单的语法用于在 perl 中声明具有一个值的多个键?