我刚才在MDN上看到了一个空白的存根,用于Reflectjavascript中的对象,但是我无法在Google的生活中找到任何东西.今天我发现了这个http://people.mozilla.org/~jorendorff/es6-draft.html#sec-reflect-object,除了领域和加载器功能外,它听起来与Proxy对象类似.
基本上,我不知道我找到的这个页面是否只解释了如何实现Reflect,或者我是否只是无法理解其措辞.有人可以请大家向我解释一下Reflect做什么方法?
例如,在我发现的页面上,调用Reflect.apply ( target, thisArgument, argumentsList )
将"返回使用参数thisArgument和args调用目标的[[Call]]内部方法的结果." 但是这与调用target.apply(thisArgument, argumentsList)有何不同?
更新:
感谢@Blue,我在维基上找到了这个页面
http://wiki.ecmascript.org/doku.php?id=harmony:reflect_api&s=reflect据
我所知,反射对象提供了所有的方法版本代理可以捕获的操作使转发更容易.但这对我来说似乎有点奇怪,因为我看不出它是如何完全必要的.但它似乎做了一点点,特别是那个标准double-lifting但但是指向旧的代理规范/
该文档页面的Reflect.apply()上MDN网页文档的状态:
在 ES5 中,您通常使用 Function.prototype.apply() 方法来调用具有给定 this 值和作为数组(或类似数组的对象)提供的参数的函数。
Function.prototype.apply.call(Math.floor, undefined, [1.75]);有了
Reflect.apply这个变得更简洁,更容易理解。
我糊涂了。在 ES5 中,我通常使用(保持上面的例子):
Math.floor.call(undefined, [1.75]);
为什么有人应该使用:
Function.prototype.apply.call(Math.floor, undefined, [1.75]);
PS:我的问题不是关于 Reflect.apply(myFunction, myObject, args);