(五十九)ES6新特征 - Reflect
1:基本概念
内置的对象, 提供拦截 JavaScript 操作的方法
将部分属于语言内部的方法转移到Reflect - defineProperty
优化了部分函数的返回结果
调用风格上倾向于函数式编程
保留对象的默认行为 - Proxy
没有构造函数, 所有属性方法都为静态 - 类似Math
2:静态方法
get - 取值操作, 不存在返回undefined
Reflect.get(target, propertyKey[, receiver]);
var object1 = {
a: 1,
b: 2,
get c() {
return this.a + this.b;
},
};
var object2 = {
a: 4,
b: 4,
};
Reflect.get(object1, 'c');
/* 3 */
Reflect.get(object1, 'c', object2);
/* 8 */
Reflect.set(target, propertyKey, value[, receiver]);
var object1 = {
a: 1,
set b(value) {
return this.a = value;
},
};
var object2 = {
a: 0,
};
Reflect.set(object1, 'b', 2, object2);
object1.foo
/* 1 */
object2.foo;
/* 2 *