将key作为值返回的Javascript对象?

时间:2015-10-13 17:28:41

标签: javascript underscore.js lodash

是否可以创建一个像对象一样的伪对象,但是返回作为值传递给它的任何键?

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'} 

事情就是这个'和'句子'也是实际值。我选择这样做是因为它使句子更具可读性而不是{{key1}}是{{key2}},所以它还想传递对象:

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

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

1 个答案:

答案 0 :(得分:1)

这是ES6功能。迄今为止只有FF支持。但它可以做你想要的。

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

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

您可以找到更多here