首页 > 其他分享 >proxy 收集

proxy 收集

时间:2024-06-20 12:21:58浏览次数:3  
标签:function return 收集 type value proxy obj luan

 

 

 

window.luan_text = "";
window.luan_open = false;
function luan_proxy(arr, name) {
  // arr 内存
  // name 名字

  // 获取数据类型
  function get_value_type(value) {
    // 'undefined', 'null', 'boolean', 'string', 'number', 'symbol', 'array', 'object', 'function'
    if (Array.isArray(value)) {
      return "array";
    }
    if (value == null) {
      return "null";
    }
    return typeof value;
  }
  // 打印函数
  function luan_print(obj) {
    let type = get_value_type(obj);
    if (["undefined", "null", "boolean", "string", "number"].includes(type)) {
      return obj;
    } else if (obj[Symbol.toStringTag]) {
      return obj[Symbol.toStringTag];
    } else if (type == "function") {
      return `function ${obj.name}`;
    } else if (type == "object" || type == "array") {
      // JSON.stringify 会递归处理
      let temp = JSON.stringify(obj, function (k, v) {
        if (v && v[Symbol.toStringTag]) {
          return v[Symbol.toStringTag];
        } else if (v && typeof v == "function") {
          return `function ${v.name}`;
        } else {
          return v;
        }
      });
      return temp;
    } else if (type == "symbol") {
      return obj.toString();
    } else {
      // 未预料到的情况
      debugger;
    }
  }

  // 句柄
  let handle = {
    get(target, property, receiver) {
      let result;
      result = Reflect.get(target, property, receiver);
      try {
        if (window.luan_open) {
          let content = luan_print(target);
          window.luan_text += `${name}|get| 下标: ${property.toString()} 内容: ${content}\r\n`;
        }
      } catch (e) {
        debugger;
      }
      return result;
    },
    set(target, property, value, receiver) {
      let result;
      result = Reflect.set(target, property, value, receiver);
      try {
        if (window.luan_open) {
          let content = luan_print(target);
          window.luan_text += `${name}|set| 下标: ${property.toString()} 内容: ${content}\r\n`;
        }
      } catch (e) {
        debugger;
      }
      return result;
    },
  };
  return new Proxy(arr, handle);
} //………………
p = luan_proxy(p, "p1");

 

标签:function,return,收集,type,value,proxy,obj,luan
From: https://www.cnblogs.com/angdh/p/18258425

相关文章

  • Git信息收集
    1.什么是版本控制系统1.1代码的恢复、备份修改仓库难以管理整个工程直接打包,占用空间过多1.2VersionControlSystem1.3发展阶段版本管理本地VCS协同开发文件冲突?自动合并不冲突的内容标记冲突的内容集中化的VCSCVCSCentralizedVersionControl......
  • JavaScript ES6 新特性探索:Proxy 解锁编程新境界
    个人主页:学习前端的小z个人专栏:JavaScript精粹本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论!ES5、ES6介绍文章目录......
  • 目录扫描收集信息
    什么是目录扫描部署的网站有一些敏感文件配置文件xxx.cfg数据文件xxx.sql.tar.gz目录/backup/conf/admin会泄露哪些信息数据库用户名和密码服务器的用户名和密码数据库的文件网站源码......为什么会泄露?配置不当的问题本地文件包含localfileinclusion(LFI)PH......
  • 搜素引擎收集信息
    GoogleHacking​ 2002​ JohnnyLong​ GoogleDorksGoogleHacking运算符完全匹配"网络安全工程师"任意字词批发OR特价不包含burpsuite-xxx数字范围number..number高级语法只搜索某个网站的内容site:zhihu.com网页的内容包括allintext:PoweredbyDis......
  • NginxProxyManager 数据库迁移记录
    原因家里服务器的NginxMangerProxy使用的是SQLite作为数据库的。虽然数据不是很重要,但是丢了也是挺蛋疼的。考虑改为MySQL作为数据库,然后使用定时备份的策略来做数据库多备份。升级步骤1.保存sqlite的database文件NginxProxyManager是使用Portainer拉起的容器,可......
  • 【JVM】G1 垃圾收集器的垃圾收集过程
    G1(GarbageFirst)垃圾收集器是Java虚拟机(JVM)中的一种垃圾收集器,设计目标是提供高吞吐量和低停顿时间的垃圾收集。G1收集器将堆划分为多个大小相等的独立区域(Region),并通过并行和并发的方式进行垃圾回收。G1收集器可以回收年轻代(YoungGeneration)和老年代(OldGeneration)的垃圾......
  • 【JVM】CMS 收集器的垃圾收集过程
    CMS(ConcurrentMark-Sweep)收集器是Java虚拟机(JVM)中的一种垃圾收集器,它主要面向老年代(OldGeneration)的垃圾回收。CMS收集器的目标是最小化垃圾收集的停顿时间,从而提高应用程序的响应性。CMS垃圾收集过程主要分为以下几个阶段:初始标记(InitialMarking):这一阶段标记所有直接......
  • Google Chrome Proxy error All In One
    GoogleChromeProxyerrorAllInOnemacOSWi-FiproxieswebproxyHTTPsecuritywebproxyHTTPSsocksproxydemos(......
  • 【代码+详解】算法题 : 骨头收集者
    ❗❗❗必看:下列题我全部都使用Java语言写的,并且均可以提交成功,获得Accepted结果的.如果代码和详解看了之后,对答案有任何疑问,都可以在评论区提出来,我都会一个一个回答.❗❗❗感谢大家的支持,如果喜欢我的博客,关注点赞收藏评论一波,非常感谢!!!文章目录......
  • 域名信息收集
    1.域名是什么用来代替IP,找到网络上的一台计算机2.域名的分类1.国际域名.com(商业公司).net(网络公司).org(组织协会).gov(政府部门).edu(教育部门).mil(军事领域).int(国际组织)2.国别域名.CN(中国).UK(英国).US(美国)......3.新顶级域名.biz.info.name......