在JavaScript中是否有任何静态方式来表示实例化类的值?
下面我有两个函数myDeskViaLiteral
和myDeskViaObject
function myDeskViaLiteral({laptop}) {
return laptop.status
}
function myDeskViaObject({laptop}) {
return laptop.getStatus()
}
我们还有一个班级Laptop
:
class Laptop {
constructor ({status}) {
this.status = status
}
getStatus() {
return this.status
}
}
现在myDeskViaLiteral
作为一个函数非常简单。
let laptop = {status: 'on'}
myDeskViaLiteral({laptop})
例如,可以轻松捕获输入和输出/快照/表示为静态JSON数据。
{
"input": [{"status": "on"}],
"output": "on"
}
但是当我们使用myDeskViaObject
并将laptop
实例传递给它时,这一切都变得更加复杂:
let laptop = new Laptop({status: 'on'})
myDeskViaLiteral({laptop})
在这种情况下,将myDeskViaLiteral
的输入表示为字符串或静态数据是不可能的(对我的知识)。
我正在寻找的是一种将myDeskViaLiteral
的输入和输出表示为静态json的方式,可能是一种可以声明state
实例的laptop
的语法,和#34;回放" (在某种情况下)。允许我们创建对象实例的快照,然后再次对其进行保湿。
这样的事情:
{
"input": [{
"class": "Laptop",
"state": {
"status": "on"
}
}],
"output": "on"
}
然后将输入包装在一个函数中,该函数将从静态数据创建一个实际的类实例。
是否有任何标准允许您创建实例化类的静态表示?