Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新以下对象的最佳方法';在Javascript中引用来自另一个对象的数据?_Javascript_Oop_Object - Fatal编程技术网

更新以下对象的最佳方法';在Javascript中引用来自另一个对象的数据?

更新以下对象的最佳方法';在Javascript中引用来自另一个对象的数据?,javascript,oop,object,Javascript,Oop,Object,在没有框架的情况下,我很难想出解决这个问题的最佳方法。假设我有这样的代码 let x = { someData: 5 } let config = [{ moreData: `You have ${x.someData} flunderflaffles` }] //user input affects x button.onclick = ()=>{ x.someData++ appendEle() } const appendEle = () =>

在没有框架的情况下,我很难想出解决这个问题的最佳方法。假设我有这样的代码

let x = {
    someData: 5
}

let config = [{
   moreData: `You have ${x.someData} flunderflaffles`
}]
//user input affects x
button.onclick = ()=>{
    x.someData++
    appendEle()
}

const appendEle = () => {
    document.body.append(`<p>${config.moreData}</p>`)
}
设x={
部分数据:5
}
让配置=[{
moreData:'您有${x.someData}个flunderflaffles`
}]
//用户输入影响x
button.onclick=()=>{
x、 一些数据++
附录(
}
常量appendEle=()=>{
document.body.append(`${config.moreData}

`) }

这是一个非常简单的解释,我现在正在做什么,但我希望你得到的要点。基本上,config.moreData的值始终为5,因为它在初始化时是这样的。有谁能解释一下如何更好地处理这个问题,以便config中的数据在x中反映出来?谢谢。

您必须确保在需要时动态创建字符串。为此,您需要一个函数。A使API保持不变:

const-config={
get moreData(){return`您有${x.someData}个flunderflaffles`}
}
用法:

const moreData=config.moreData

您必须确保在需要时动态创建字符串。为此,您需要一个函数。A使API保持不变:

const-config={
get moreData(){return`您有${x.someData}个flunderflaffles`}
}
用法:

const moreData=config.moreData

我不明白这个问题。您希望更好地处理什么?一个简单的方法是:使用一个返回动态创建的对象的函数,而不是字符串,
moreData
可以是一个不需要任何参数的函数,例如
moreData:()=>`您有${x.someData}flunderflaffles`
function config(){return{moreData:`youhave${x.someData}flunderflaffles`}
现在改用
config().moreData
(或者,是的,改用
moreData
函数)我不理解这个问题。您希望更好地处理什么?一个简单的方法是:使用一个返回动态创建的对象的函数,而不是字符串,
moreData
可以是一个不需要任何参数的函数,例如
moreData:()=>`您有${x.someData}flunderflaffles`
function config(){return{moreData:`您有${x.someData}flunderflaffles`}
现在使用
config().moreData
来代替(或者,是的,让
moreData
成为一个函数)正是我所需要的!非常感谢。记住要谨慎使用getter属性,因为它们通常是其他开发人员无法预料的。这正是我所需要的!非常感谢。记住要谨慎使用getter属性,因为它们通常是其他开发人员无法预料的。