Javascript 将 returns 键作为值的对象?

Javascript object that returns key as value?

是否可以创建一个伪对象,其行为类似于对象,但 returns 将任何键作为值传递给它?

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) -> []

可能吗?

完整性 我有一个翻译 table 接受一个对象并根据这些值的对象键切换所有值..

"{{this}} is a {{sentence}}" 

Obj1 = {this: 'that', sentence: 'apple'} 

问题是 'this' 和 'sentence' 也是实际值。我选择这样做是因为它使句子更具可读性,而不是 {{key1}} 是一个 {{key2}} ,所以它也想传入对象:

ObjOrginal = {this:'this',sentence:'sentence'}

因为那样我就不必改变任何东西了。 把这个对象写出来是不切实际的,所以我想知道是否有办法创建这样一个对象。

这是 ES6 的特性。截至今天,仅受 FF 支持。但它做你想做的事。

var handler = {
    get: function(target, name){
        return name;
    }
};

var p = new Proxy({}, handler);

你可以找到更多here