TypeError:proxy上的'ownKeys':trap结果不包含'arguments'

我想要什么? 如何使其工作?

var proxy_handler = { ownKeys: function(target) { return Object.keys(target.data) }, } var proxxxy = function(initial_data) { var return_value = "Goodbye world" var target = function() { return return_value } if(typeof initial_data == "undefined") { target.data = {} } else { target.data = initial_data } return new Proxy(target, proxy_handler) } var p = proxxxy({q:"aaa",w:"bbb",f:"ccc"}) console.log(p()) console.log(Object.getOwnPropertyNames(p)) 

它打印一个错误,但不应该:

 me@me:~/tst$ node --version v6.2.2 me@me:~/tst$ node test3.js Goodbye world /home/me/tst/test3.js:26 console.log(Object.getOwnPropertyNames(p)) ^ TypeError: 'ownKeys' on proxy: trap result did not include 'arguments' at Object.<anonymous> (/home/me/tst/test3.js:26:24) at Module._compile (module.js:541:32) at Object.Module._extensions..js (module.js:550:10) at Module.load (module.js:458:32) at tryModuleLoad (module.js:417:12) at Function.Module._load (module.js:409:3) at Module.runMain (module.js:575:10) at run (node.js:348:7) at startup (node.js:140:9) at node.js:463:3 

这是一个错误? 如果是的话 – 我可以在哪里提交?

这不是一个错误; 此行为由ownKeys的代理规范 (步骤17a)定义。 用简单的英语,实际target任何不可configuration属性必须出现在ownKeys返回的属性列表中,因此在示例中缺less特定的arguments

 > Object.getOwnPropertyDescriptor(target, "arguments") Object {value: null, writable: false, enumerable: false, configurable: false} 
Interesting Posts