Reflect.set无法正常工作

时间:2017-12-27 12:18:04

标签: javascript ecmascript-6

我似乎不太可能发现某种明显的跨浏览器错误。但根据文档Reflect.set应该使用第4个参数作为thisArg(例如,如果set变量是setter)。第一个参数是要设置值的对象,但每当我提供任何对象作为第4个参数时,将在该对象上设置值而不是目标对象。

var target = new Object;
var thisArg = new Object;

Reflect.set(target, 'variable', 52, thisArg);

target.variable == undefined
thisArg.variable == 52

有任何解释吗?

1 个答案:

答案 0 :(得分:2)

  

第一个参数是要在

上设置值的对象

不完全是。第一个参数是调用setter的对象(包括对象原型链上的setter)。

  

每当我提供任何对象作为第4个参数时,就会设置该值而不是目标对象。

是。因为属性总是在接收器上设置。只是参数是可选的,因为它通常与目标相同,因此在未提供时默认为第一个参数。

相关问题