#第五人格[超话]##第五人格公主抱#
p1p2是开局挂了我椅子,二挂突然佛系的杰克,被撞下来六次[允悲]
p3我自己自定义[偷乐]
p4是一只佳丽,最后队友走了她突然传送我的这个门(我当时在翻箱子)
p5是一只魔系杰克,我刚进游戏就发现在椅子上了[允悲]
剩下的几张是开局抓到我,抱了一局疯狂戳爆攻击键的苏苏的杰克先生[求关注][求关注][求关注]真的是戳了一局的攻击键啊[求关注][求关注]

等和朋友自定义我也戳爆攻击键[doge]

突然发现蓝色也是一种别样的美呢,不似红色那样热情,张扬,浪漫。却有一种清冷的神秘感,清而雅[求关注]俗话说的好,自古红蓝出cp嘛[doge]

(官博,看我看我,赞我赞我[doge])

【基于原型链劫持的前端代码插桩实践】
作者:doodlewind
链接:https://t.cn/EGsr6AG

导读
代码插桩技术能够让我们在不更改已有源码的前提下,从外部注入、拦截各种自定的逻辑。这为施展各种黑魔法提供了巨大的想象空间。下面我们将介绍浏览器环境中一些插桩技术的原理与应用实践。

插桩基础概念
前端插桩的基本理念,可以用这个问题来表达:假设有一个被业务广泛使用的函数,我们是否能够在既不更改调用它的业务代码,也不更改该函数源码的前提下,在其执行前后注入一段我们自定义的逻辑呢?
举个更具体的例子,如果业务逻辑中有许多 console.log 日志代码,我们能否在不改动这些代码的前提下,将这些 log 内容通过网络请求上报呢?一个简单的思路是这样的:

封装一个「先执行自定义逻辑,然后执行原有 log 方法的函数」。
将原生 console.log 替换为该函数。

如果希望我们的解法具备通用性,那么不难将第一步中的操作泛化为一个高阶函数:
function withHookBefore (originalFn, hookFn) {
return function () {

hookFn.apply(this, arguments)

return originalFn.apply(this, arguments)
}
}
于是,我们的插桩代码就很简洁了。只需要形如这样:
console.log = withHookBefore(console.log, (...data) => myAjax(data))
复制代码原生的 console.log 会在我们插入的逻辑之后继续。下面考虑这个问题:我们能否从外部阻断 console.log 的执行呢?有了高阶函数,这同样是小菜一碟:
function withHookBefore (originalFn, hookFn) {
return function () {

if (hookFn.apply(this, arguments) === false) {

return

}

return originalFn.apply(this, arguments)
}
}
只要钩子函数返回 false,那么原函数就不会被执行。例如下面就给出了一种清爽化控制台的骚操作:
console.log = withHookBefore(console.log, () => false)
这就是在浏览器中「偷天换日」的基本原理了。

来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

【哈雷发布量产版电动摩托车LiveWire 明年上市】总部位于威斯康星州密尔沃基的哈雷日前在意大利EICMA摩托车展上发布了这款量产版电动摩托车LiveWire,明年上市销售。LiveWire将提供7种骑行模式,其中3种是用户自定义模式。摩托车还在车把上方安装了可调的彩色触摸显示屏,让用户可以使用蓝牙、导航、音乐和其他功能。哈雷给LiveWire配备了一种新的音调,随着速度会增加音高和音量。


发布     👍 0 举报 写留言 🖊   
✋热门推荐
  • 《才不要和老板谈恋爱》当再次回到十年后,钱唯尝试着走进陆询的内心世界,这才理解了陆询内心正直且温暖的一面。而钱唯也开始反思自己的生活态度,不再将困境委过于他人,
  • 【狮子座】爱到深处狮子座会把全部的自己都交出去,这样冒险的事儿可不是理智的狮子能做得出来的,但就是因为爱,所以情愿。爱上一个人,就无法自拔的五大星座【双子座】爱
  • #檀健次[超话]##檀健次全能ace##论檀基地[超话]##檀健次肖顺尧终于合体了# 为檀郎作的第二首诗促膝檀心系列「. 珍贵的你 .」你的声音是世界上极美妙的
  • 据悉,当事人刘某(微博名:小岛里的大海)故意编造虚假信息,通过注册微博、微信账号方式冒用其他家长身份恶意散布传播,并雇请人员进行网络炒作,从 ...全文 #校园
  • ”“美国女排等欧美队都是业余的乌合之众,大赛之前两个月才开始集中训练”温故知新[熊猫]稳得一逼的小米AIoT路由器AX3600今天退居二线,换上了AX9000!
  • 油价暴涨!这里加油站每升近14元
  • 国家药监局批准五款新冠抗原自测产品上市
  • #原创音乐制作人张艺兴# 0‼️2‼️2‼️8 ‼️补 养 进君羊 不会养耗子?没关系 进君羊有很多热心壳子可以教你[牛牛哒]君羊 在铁羊置顶 kp形势真
  • [笑cry]要知道,在我的香水收藏间里,30ml以下容量的香水都是不计数的[喵喵]何况这些香气都很打动我,或许品牌也可以考虑一下像娇兰那样出灌装香水服务,我先每
  • 其实最早的甲骨文里面的“言”还不单纯是语言的含义,它还是一个测日的工具,观天的工具,放在一个台上面,然后要读取观测的数据,测完日影,观测天体运行后,天师将这个数
  • 但是巴菲特登上世界财富的顶峰却还要经历很漫长的等待,统计显示巴菲特近96%的财富是在60岁以后才获得。恭喜这位学生,祝他学业有成~[爱你]#香港# #留学# #
  • 晚上周末可以窝在沙发上投个屏幕看电影喝喝小酒~租约到2022年五月,很适合情侣及闺蜜住,很宽敞~随时可转,这个价格这个配置真的是在五和附近最好的房了,需要的可以
  • 这里会有精通社会调研的老师为你带来专业的讲座辅导,为你答疑解惑;更有经验老到的社内成员引导你走进调研的大门,不用为自己是调研领域内小白、萌新而担心,零点调查社带
  • 反正记得我吃什么他们也吃什么[笑而不语][笑而不语][笑而不语],不吃辣椒就挨打,也没如此复杂,营养搭配?科学育儿,轻松带娃,一起做更智慧的辣妈[机智] #种花
  • 整体非常修长,真的谁戴谁好看哦[坏笑]如果你也喜欢我的分享,记得关注@Shuni饰界 让你选首饰,不踩坑,发现更美的自己。我今天要解决的是90%顾客的问题 :
  • 一、反弓水如果房屋后有一条马路像一张弓一样反向相对,就犯了风水上的“反弓煞”这样会导致家人多发矛盾,争吵不断,家庭不易和睦。此外,如果长久居住,还容易为家人招来
  • !六点签到无论你目前从事什么,只要你转向追求你所热爱的东西时,都会存在风险。
  • 拉梅洛·鲍尔在新秀赛季虽然没有爱德华兹投得那么多,但他在本赛季将自己的三分球命中率提升到了40%左右的水准,如今也已经合计命中了162记三分球。利拉德如今投中了
  • 1⃣️0⃣️最新更新 2020.10.29时间真快 快一年了没想到有好多和我一样的小倒霉蛋[笑哭R]大家不要心急 慢慢来 恢复肯定是需要时间滴!2⃣️整个右手到
  • #每日一善[超话]#[赢牛奶]#每日一善# [赢牛奶]#阳光信用# 【只hu较好及以上】 以善良为师,得到的是正义和正直的教诲,即使步履平凡,也不失不俗的境界