Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何用文字符号[]代理数组实例_Javascript_Arrays_Proxy Pattern - Fatal编程技术网

Javascript 如何用文字符号[]代理数组实例

Javascript 如何用文字符号[]代理数组实例,javascript,arrays,proxy-pattern,Javascript,Arrays,Proxy Pattern,我可以通过Array()或new Array()检测新实例。但是[]呢 const originalArray = Array; Array = new Proxy(Array,{ construct(target, args) { console.log('new array'); const newArray = Reflect.construct(originalArray, args); return newArray; }

我可以通过Array()或new Array()检测新实例。但是[]呢

const originalArray = Array;
Array = new Proxy(Array,{
    construct(target, args) {
        console.log('new array');
        const newArray = Reflect.construct(originalArray, args);
        return newArray;
    },
    apply(target,thisArg,argArray){
        console.log('apply');
        Reflect.apply(target,thisArg,argArray);
    }
});

var a = [3,2];// no handler
var b = Array(3,2);// apply
var c = new Array(3,2);// new

无法从文字语法截取对象创建


事实上,这在早些时候是可能的,因为有一个bug,它导致了信息泄漏。

不可能从文本语法截获对象创建


事实上,这在早些时候是可能的,因为有一个bug,它导致了信息泄漏。

文字符号
[]
是一种直接构造数组的快捷方式,而不需要构造函数可能具有的任何重写。尝试代理所有数组似乎是这样的。嗯,好吧,太糟糕了。你实际上在尝试做什么,包括代理数组?可能有一种替代方法,比如创建
类MyArray extends Array
。是的,它使用代理处理程序,但语法糖为[],这将是Y解决方案。文字符号
[]
是一种快捷方式,可以直接构造数组,而无需构造函数可能具有的任何重写。尝试代理所有数组似乎是这样的。嗯,好吧,太糟糕了。你实际上在尝试做什么,包括代理数组?可能有一种替代方法,比如创建
类MyArray extends Array
。是的,它使用代理处理程序,但语法糖为[],这将是Y解决方案。太糟糕了,他们应该禁止跨源脚本加载
,而不是构造函数拦截(对于合法的同源代码) imho@8HoLoN禁止跨源脚本加载将破坏web。每个人都这样做。他们应该只允许脚本使用它,就像它用于fetch/ajax/xmlhttprequest一样(需要时使用服务器头以允许跨源代码)。太糟糕了,他们应该禁止跨源脚本加载
,而不是构造函数拦截(对于合法的同源代码) imho@8HoLoN禁止跨源脚本加载将破坏web。每个人都这样做。他们应该只允许脚本使用它,就像它用于fetch/ajax/xmlhttprequest一样(使用服务器的头,以便在需要时允许跨源)