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

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

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

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

有什么解释吗?

最佳答案



不完全是。第一个参数是调用其setter方法的对象(包括对象原型(prototype)链中的对象)。



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

关于javascript - Reflect.set不能按预期工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47992070/

10-11 21:52