其他 ======================================== 命令执行 ---------------------------------------- Node.js中child_process.exec命令调用的是 ``/bin/sh`` ,故可以直接使用该命令执行shell 反调试技巧 ---------------------------------------- - 函数重定义 ``console.log = function(a){}`` - 定时断点 ``setInterval(function(){debugger}, 1000);`` 对象拷贝 ---------------------------------------- JavaScript中的对象拷贝分为浅拷贝和深拷贝。 浅拷贝对一个对象进行拷贝时,仅仅拷贝对象的引用进行拷贝,但是拷贝对象和源对象还是引用同一份实体。其中一个对象的改变都会影响到另一个对象。 深拷贝拷贝一个对象时,不仅仅把对象的引用进行复制,还把该对象引用的值也一起拷贝。源对象与拷贝对象互相独立,其中任何一个对象的改动都不会对另外一个对象造成影响。 深拷贝可以基于 ``for-in`` / ``object.assign()`` / 拓展运算符 ``...`` / ``JSON.parse(JSON.stringify())`` 等方式实现。其中前三种方式只对第一层做深拷贝,若对象结构较为复杂,则需要用递归的方式对更深的层次进行拷贝。 常见Sink ---------------------------------------- - child_process - eval - exec - execSync