阅读优秀的代码的目的是让我们能够写出优秀的代码
其实就跟我们写作文一样,你看的高分作文越多,写出高分作文的概率就越大
大部分程序员都只会写代码(改,抄,stackoverflow工程师,代名词: 搬砖),会阅读代码的很少,为什么呢?因为国内所有的教育,网课,培训都没有教你怎么去看代码,只教你怎么去写代码。
Reflect.set(target, propkey, value, proxy)是什么意思
Reflect.set(target, propKey, value, proxy) 是 JavaScript 中的一个内置方法,用于设置对象的属性值。
参数说明:
- target:要设置属性值的目标对象。
- propKey:要设置的属性名。
- value:要设置的属性值。
- proxy(可选):如果目标对象是一个代理对象,则传入该代理对象。
Reflect.set() 方法会将指定对象的指定属性设置为指定的值。如果属性不存在,则会创建该属性。如果属性存在并且是一个访问器属性(即具有 getter 和/或 setter 方法),则会调用相应的 setter 方法来设置属性值。
与直接使用赋值操作符 = 不同,Reflect.set() 方法具有以下特点:
- 如果设置成功,返回 true;如果设置失败,返回 false。
- 如果目标对象是一个代理对象,并且代理对象的 set 拦截器存在,则会触发该拦截器。
- 如果目标对象的属性设置操作被禁止(例如,目标对象是一个冻结对象),则会抛出一个 TypeError 错误。
const obj = { foo: 'bar' };
// 使用 Reflect.set() 方法设置属性值
Reflect.set(obj, 'foo', 'baz');
console.log(obj.foo); // 输出: "baz"
在上面的示例中,Reflect.set(obj, 'foo', 'baz') 将 obj 对象的 foo 属性的值设置为 'baz'。最终输出的结果是 "baz"。
总的来说,Reflect.set(target, propKey, value, proxy) 方法是用于设置对象属性值的一种更加灵活和可控的方式。