• 从现在开始强迫自己使用 Reflect


    静态方法

    Reflect.apply(target, thisArg, args)

    等同于 Function.prototype.apply.call(func, thisArg, args)

    Reflect.construct(target, args)

    等同于 new target(...args) new Student(name:'王五')

    Reflect.get(target, name, receiver)

    var myObject = {
      foo: 1,
      bar: 2,
      get baz() {
        return this.foo + this.bar;
      },
    };
    
    var myReceiverObject = {
      foo: 4,
      bar: 4,
    };
    
    Reflect.get(myObject, 'baz', myReceiverObject) // 8
    

    Reflect.set(target, name, value, receiver)

    var myObject = {
      foo: 4,
      set bar(value) {
        return this.foo = value;
      },
    };
    
    var myReceiverObject = {
      foo: 0,
    };
    
    Reflect.set(myObject, 'bar', 1, myReceiverObject);
    myObject.foo // 4
    myReceiverObject.foo // 1
    

    Reflect.defineProperty(target, name, desc)

    等同于 Object.defineProperty

    Reflect.deleteProperty(target, name)

    const myObj = { foo: 'bar' };
    
    // 旧写法
    delete myObj.foo;
    
    // 新写法
    Reflect.deleteProperty(myObj, 'foo');
    

    Reflect.has(target, name)

    var myObject = {
      foo: 1,
    };
    
    // 旧写法
    'foo' in myObject // true
    
    // 新写法
    Reflect.has(myObject, 'foo') // true
    

    Reflect.ownKeys(target)

    等同于Object.getOwnPropertyNamesObject.getOwnPropertySymbols之和

    Reflect.isExtensible(target)

    Reflect.isExtensible方法对应Object.isExtensible,返回一个布尔值,表示当前对象是否可扩展

    Reflect.preventExtensions(target)

    Reflect.preventExtensions对应Object.preventExtensions方法,用于让一个对象变为不可扩展。它返回一个布尔值,表示是否操作成功

    Reflect.getOwnPropertyDescriptor(target, name)

    Reflect.getOwnPropertyDescriptor基本等同于Object.getOwnPropertyDescriptor,用于得到指定属性的描述对象,将来会替代掉后者

    var a={sb:1}
    
    Reflect.getOwnPropertyDescriptor(a, 'sb');
    
    //{configurable: true,enumerable: true,value: 1,writable: true}
    

    Reflect.getPrototypeOf(target)

    Reflect.getPrototypeOf方法用于读取对象的__proto__属性,对应Object.getPrototypeOf(obj)

    Reflect.setPrototypeOf(target, prototype)

    Reflect.setPrototypeOf方法用于设置目标对象的原型prototype,对应Object.setPrototypeOf(obj, newProto)方法。它返回一个布尔值,表示是否设置成功。

  • 相关阅读:
    17. 电话号码的字母组合
    12. 整数转罗马数字
    01-正则表达式基础
    前端SEO技巧
    node.js
    Vue.生命周期
    Vue小案例--过滤器的基本操作
    vue简单的计算器
    VSCode 自动刷新
    Vue.js学习
  • 原文地址:https://www.cnblogs.com/smzd/p/11867317.html
Copyright © 2020-2023  润新知