Proxy Class - object

// proxy : 访问代理
 const person = {
   name: 'foo',
   age: 20,
 }
 const personProxy = new Proxy(person, {
   get(target, property) {
   console.log('get', target, property)
   return target[property]
   },
   set(target, property, value) {
   console.log(target, property, value)
   return target
   },
   deleteProperty(target, property) {
     console.log('delete', property, target)
     delete target[property]
     console.log('inside',person)
   },
   has(target, prop) {
     console.log( 'proxy result', prop in target)
     return target
   },
   getPrototypeOf(target) {
     console.log( 'getPropertyOf', target)
     return target
   },
    setPrototypeOf(target) {
     console.log( 'setProperty', target)
     return target
   },
   isExtensible(target) {
     console.log( 'isExtensible', target)
     return target
   },
   preventExtensions(target){
      Object.preventExtensions(target);
      return true;
   },
   getOwnPropertyDescriptor(target, prop) {
   let x= Object.getOwnPropertyDescriptor(target, prop) 
    console.log('gg',x) 
    },
    ownKeys(target){
      let x=  Object.getOwnPropertyNames(target)
      let y = Object.getOwnPropertySymbols(target)
      let z =  Object.keys(target)
      let j = Reflect.ownKeys(target)
      console.log('called',x)
      return x
    }
 })
 
 
// proxy内先打印
// 把personProxy 当作 person 对象来用 =》 personProxy 会对proxy 监视 + 操作 , 具体操作在 proxy 的方法里 实现
// personProxy.get(person, name) // 错误写法 第一次尝试

// 对象监视
// personProxy.name
// personProxy.sex = 0
// delete personProxy.age
// console.log(1,'age' in person)
// console.log(2,'age' in personProxy)
// console.log('personProxy is', personProxy) 
// Object.getPrototypeOf(personProxy)
// Object.getPrototypeOf(person)
// Object.isExtensible(personProxy)
// Object.preventExtensions(personProxy)
// Object.isExtensible() 方法判断一个对象是否是可扩展的(是否可以在它上面添加新的属性)。
// Object.getOwnPropertyDescriptor(personProxy,'age')
//Object.defineProperty(person, 'gender', {
//  enumerable: true,     //enumerable 定义了对象的属性是否可以在 for...in 循环和 Object.keys() 中被枚举。
//  configurable: false,  //不可配置的
//  writable: false,     // 不可写的, 不能被重新赋值
//  value: 0
//})
// Object.getOwnPropertyNames(personProxy)
// Object.getOwnPropertySymbols(personProxy)
// Object.keys(personProxy)
// Reflect.ownKeys(personProxy)



// 函数 监视
//  apply
//  construct
 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一条关于 HTTP 响应的记录,其中包含了以下信息: - Accept-Ranges: bytes,表示服务器接受客户端对资源的部分请求。bytes 表示客户端可以通过指定 Range 头来请求资源的某个部分。 - Connection: keep-alive,表示客户端和服务器之间的连接保持活动状态,可以进行多次请求和响应。 - Content-Type: text/html,表示响应的内容类型为 text/html,即 HTML 文本。 - Date: Sat, 10 Jun 2023 03:13:53 GMT,表示响应的时间,按照 GMT 标准格式表示。 - Etag: "1C6094D207D6ED5F8C9F81500F7A0C39",表示资源的实体标签,用于判断两个资源是否相同。如果两个资源的 Etag 值相同,则表示这两个资源相同。 - Keep-Alive: timeout=4,表示服务器设置了一个 4 秒的时间,如果在这个时间内没有收到客户端的请求,则关闭连接。 - Last-Modified: Sat, 10 Jun 2023 03:03:09 GMT,表示资源的最后修改时间,按照 GMT 标准格式表示。 - Proxy-Connection: keep-alive,表示代理服务器和目标服务器之间的连接保持活动状态,可以进行多次请求和响应。 - Server: AliyunOSS,表示服务器的类型为阿里云对象存储服务。 - X-Oss-Hash-Crc64ecma: 3312235743083856566,表示对象的 CRC64 校验值。 - X-Oss-Object-Type: Normal,表示对象类型为普通对象,即不是分块上传的对象。 - X-Oss-Request-Id: 6483EA719DB5783631D09C6E,表示本次请求的唯一标识符。 - X-Oss-Storage-Class: Standard,表示对象存储的存储类型为标准类型,即最常用的对象存储类型。 总体来说,这条记录是服务器对客户端的 HTTP 响应。响应的内容类型为 text/html,服务器支持客户端对资源的部分请求,同时客户端和服务器之间的连接和代理服务器和目标服务器之间的连接都保持活动状态。响应的时间、资源的实体标签、最后修改时间等信息都被包含在响应头中。其中,X-Oss-Hash-Crc64ecma 表示对象的校验值,用于检查对象在传输过程中是否发生了损坏。X-Oss-Request-Id 表示本次请求的唯一标识符,用于服务器进行请求追踪和日志记录。X-Oss-Storage-Class 表示对象存储的存储类型,不同的存储类型对应不同的费用和服务水平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值