如何声明多个具有相同值的变量
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()
,您将有两个引用的日期,通过事先声明变量,您基本上在查看today
或tomorrow
时告诉代码查看在存储中的同一个地方(这里是 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 中为具有相同值的多个参数标记传递参数?