[每日一题]面试官问:谈谈你对ES6的proxy的理解? (2)

拦截 propKey in proxy 的操作,返回一个布尔值。

// 使用 has 方法隐藏某些属性,不被 in 运算符发现 var handler = { has (target, key) { if (key.startsWith('_')) { return false; } return key in target; } }; var foo = { _name: 'saucxs', name: 'saucxs' }; var proxy = new Proxy(foo, handler); console.log('_name' in proxy); // false console.log('name' in proxy); // true 3、ownKeys方法

拦截自身属性的读取操作。并返回目标对象所有自身属性的属性名数组。具体返回结果可结合 MDN 属性的可枚举性和所有权

Object.getOwnPropertyName(proxy)

Object.getOwnPropertySymbols(proxy)

Object.keys(proxy)

for ... in循环

let target = { _foo: 'foo', _bar: 'bar', name: 'saucxs' }; let handler = { ownKeys (target) { return Reflect.ownKeys(target).filter(key => key.startsWith('_')); } }; let proxy = new Proxy(target, handler); for (let key of Object.keys(proxy)) { console.log(target[key]); } // "saucxs" 4、apply方法

apply 拦截 Proxy 实例作为函数调用的操作,比如函数的调用(proxy(...args))、call(proxy.call(object, ...args))、apply(proxy.apply(...))等。

var target = function () { return 'I am the target'; }; var handler = { apply: function () { return 'I am the saucxs proxy'; } }; var proxy = new Proxy(target, handler); proxy(); // "I am the saucxs proxy"

更多可见阮一峰老师的 《ECMAScript 6 入门》(

谢谢支持

1、文章喜欢的话可以「分享,点赞,在看」三连哦。

2、作者昵称:saucxs,songEagle,松宝写代码。「松宝写代码」公众号作者,每日一题,实验室等。一个爱好折腾,致力于全栈,正在努力成长的字节跳动工程师,星辰大海,未来可期。内推字节跳动各个部门各个岗位。

3、长按下面图片,关注「松宝写代码」,是获取开发知识体系构建,精选文章,项目实战,实验室,每日一道面试题,进阶学习,思考职业发展,涉及到JavaScript,Node,Vue,React,浏览器,http等领域,希望可以帮助到你,我们一起成长~

松宝写代码

字节内推福利

回复「校招」获取内推码

回复「社招」获取内推

回复「实习生」获取内推

后续会有更多福利

学习资料福利

回复「算法」获取算法学习资料

往期「每日一题」 1、JavaScript && ES6

第 19 题:【每日一题】面试官问:谈谈JS中的 XMLHttpRequest 对象的理解?

第 18 题:【每日一题】面试官问:JS中的 Ajax 跨域与扩展 Comet ?

第 17 题:【每日一题】(17题)面试官问:JS中事件流,事件处理程序,事件对象的理解?

第 16 题:【每日一题】面试官问:JS中如何全面进行客户端检测?

第 15 题:【每日一题】面试官问:JS类型判断有哪几种方法?

第 14 题:【每日一题】面试官问:谈谈你对JS对象的创建和引申

第 13 题[每日一题]面试官问:['1', '2', '3'].map(parseInt)输出,原因,以及延伸?

第 12 题[每日一题]面试官问:JS引擎的执行过程(二)

第 11 题[每日一题]面试官问:JS引擎的执行过程(一)

第 10 题[每日一题]面试官问:详细说一下JS数据类型

第 8 题[每日一题]面试官问:谈谈你对ES6的proxy的理解?

第 7 题[每日一题]面试官问:for in和for of 的区别和原理?

第 6 题[每日一题]面试官问:Async/Await 如何通过同步的方式实现异步?

第 3 道「「每日一题」面试官问你对 Promise 的理解?可能是需要你能手动实现各个特性」

第 2 道「[每日一题]ES6 中为什么要使用 Symbol?」

2、浏览器

第 9 题[每日一题]requestAnimationFrame不香吗?

3、Vue

第 5 道「每日一题」到底该如何回答:vue数据绑定的实现原理?

4、算法

第 4 道「每日一题」与面试官手撕代码:如何科学高效的寻找重复元素?

5、Http

第 1 道「一道面试题是如何引发深层次的灵魂拷问?」

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zydzfd.html