【发布时间】:2015-10-13 17:28:41
【问题描述】:
是否可以创建一个伪对象,其行为类似于对象,但返回作为值传递给它的任何键?
var foo = new pseudoObject()
foo['test'] -> 'test'
food[1] -> 1
foo.something -> 'something'
Object.keys(foo) -> []
foo.next = "string";
foo.next -> 'next'
Object.keys(foo) -> []
有可能吗?
为了完整性 我有一个转换表,它接收一个对象并根据这些值的对象键切换所有值..
"{{this}} is a {{sentence}}"
Obj1 = {this: 'that', sentence: 'apple'}
问题是“this”和“sentence”也是实际值。我选择这样做是因为它使句子更具可读性,而不是 {{key1}} is a {{key2}} ,所以它也想传入对象:
ObjOrginal = {this:'this',sentence:'sentence'}
因为那样我就不必改变任何东西了。 写出这个对象是不切实际的,所以我想知道是否有办法创建这样一个对象。
【问题讨论】:
-
Proxy会这样做。但说真的,你需要这个做什么? -
我不想写一个关于目的的段落,这会对问题的答案产生影响
-
是的,它会有所作为。 There's likely a better way to solve whatever problem you're having。尤其是在 ES6 之前的环境中也可以使用。
-
那个伪对象解决了什么问题?你在哪里使用它?
-
标签: javascript underscore.js lodash