上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

[油猴脚本开发指南]Reflect的使用

[复制链接]
  • TA的每日心情
    开心
    6 小时前
  • 签到天数: 59 天

    [LV.5]常住居民I

    354

    主题

    3139

    帖子

    3136

    积分

    管理员

    非物质文化遗产社会摇传承人

    Rank: 10Rank: 10Rank: 10

    积分
    3136

    猫咪币纪念章国庆纪念章中秋纪念章荣誉开发者家财万贯管理员

    发表于 2021-8-4 02:11:56 | 显示全部楼层 | 阅读模式

    Reflect是什么?

    Reflect与Proxy都同时在ES2015标准中,他是一个内置的对象,提供一些方法,这些方法与Proxy 的Handler中是相同的,他不是一个函数的对象,因此是不可构造的,我们只可以使用他的静态方法

    为什么存在Reflect?

    通常我们将它与Proxy进行联合使用,在进行劫持后调用原方法,那为什么不直接操作对象呢?

    这点我查阅了资料,认为存在两个原因

    一是目前暴露了一些核心的api供我们调用,但是未来可能隐藏掉这些api,通过Reflect才能调用。

    二是统一操作的过程,如果我们不使用Reflect提供的函数,而使用操作的函数进行对象操作,那有一部分对象操作失败会报出异常,有一部分会报出null等等,返回值并不统一,而Reflect相对统一,比如曾经错误会报出异常的函数,在Reflect内会返回false,使用Reflect我们可以对各种函数有一个更统一的返回值以及处理。

    Reflect的函数有哪些?

    Reflect.apply(target, thisArgument, argumentsList)

    对一个函数进行调用操作,同时可以传入一个数组作为调用参数。和 Function.prototype.apply() 功能类似。

    Reflect.construct(target, argumentsList[, newTarget])

    对构造函数进行 new 操作,相当于执行 new target(...args)。

    Reflect.defineProperty(target, propertyKey, attributes)

    和 Object.defineProperty() 类似。如果设置成功就会返回 true

    Reflect.deleteProperty(target, propertyKey)

    作为函数的delete操作符,相当于执行 delete target[name]。

    Reflect.get(target, propertyKey[, receiver])

    获取对象身上某个属性的值,类似于 target[name]。

    Reflect.getOwnPropertyDescriptor(target, propertyKey)

    类似于 Object.getOwnPropertyDescriptor()。如果对象中存在该属性,则返回对应的属性描述符, 否则返回 undefined.

    Reflect.getPrototypeOf(target)

    类似于 Object.getPrototypeOf()。

    Reflect.has(target, propertyKey)

    判断一个对象是否存在某个属性,和 in 运算符 的功能完全相同。

    Reflect.isExtensible(target)

    类似于 Object.isExtensible().

    Reflect.ownKeys(target)

    返回一个包含所有自身属性(不包含继承属性)的数组。(类似于 Object.keys(), 但不会受enumerable影响).

    Reflect.preventExtensions(target)

    类似于 Object.preventExtensions()。返回一个Boolean。

    Reflect.set(target, propertyKey, value[, receiver])

    将值分配给属性的函数。返回一个Boolean,如果更新成功,则返回true。

    Reflect.setPrototypeOf(target, prototype)

    设置对象原型的函数. 返回一个 Boolean, 如果更新成功,则返回true。

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
  • TA的每日心情
    奋斗
    昨天 08:21
  • 签到天数: 99 天

    [LV.6]常住居民II

    143

    主题

    525

    帖子

    851

    积分

    版主

    Rank: 8Rank: 8

    积分
    851

    猫咪币纪念章三好学生活跃会员热心会员突出贡献中秋纪念章国庆纪念章宣传达人推广达人

    发表于 2021-8-4 03:00:29 | 显示全部楼层
    ggnb      
    bilibili:陈公子的话   公众号:陈公子的话
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 09:33
  • 签到天数: 70 天

    [LV.6]常住居民II

    153

    主题

    2036

    帖子

    2161

    积分

    管理员

    Rank: 10Rank: 10Rank: 10

    积分
    2161

    猫咪币纪念章热心会员活跃会员突出贡献三好学生中秋纪念章国庆纪念章管理员家财万贯

    发表于 2021-8-4 09:49:35 | 显示全部楼层
    学习了
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。/ 微信公众号:一之哥哥
    回复

    使用道具 举报

  • TA的每日心情
    开心
    6 小时前
  • 签到天数: 59 天

    [LV.5]常住居民I

    354

    主题

    3139

    帖子

    3136

    积分

    管理员

    非物质文化遗产社会摇传承人

    Rank: 10Rank: 10Rank: 10

    积分
    3136

    猫咪币纪念章国庆纪念章中秋纪念章荣誉开发者家财万贯管理员

    发表于 2021-8-4 11:43:23 | 显示全部楼层

    哥哥你一个本来就会的学习了什么!
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2022-6-12 21:47
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    11

    主题

    256

    帖子

    203

    积分

    高级工程师

    Rank: 6Rank: 6

    积分
    203

    中秋纪念章猫咪币纪念章活跃会员热心会员三好学生

    发表于 2021-8-4 12:37:02 来自手机  | 显示全部楼层
    哥哥是小母牛坐飞机,牛逼上天了,有没有具体点的使用事例
    回复

    使用道具 举报

  • TA的每日心情
    开心
    6 小时前
  • 签到天数: 59 天

    [LV.5]常住居民I

    354

    主题

    3139

    帖子

    3136

    积分

    管理员

    非物质文化遗产社会摇传承人

    Rank: 10Rank: 10Rank: 10

    积分
    3136

    猫咪币纪念章国庆纪念章中秋纪念章荣誉开发者家财万贯管理员

    发表于 2021-8-4 14:08:48 | 显示全部楼层
    脚本体验师001 发表于 2021-8-4 12:37
    哥哥是小母牛坐飞机,牛逼上天了,有没有具体点的使用事例

    下节课有!Xhr返回内容劫持
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    7 天前
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    13

    主题

    265

    帖子

    229

    积分

    版主

    Rank: 8Rank: 8

    积分
    229

    猫咪币纪念章活跃会员中秋纪念章国庆纪念章

    发表于 2021-8-4 15:10:38 | 显示全部楼层
    积分规则改变了吗
    回复

    使用道具 举报

  • TA的每日心情
    开心
    6 小时前
  • 签到天数: 59 天

    [LV.5]常住居民I

    354

    主题

    3139

    帖子

    3136

    积分

    管理员

    非物质文化遗产社会摇传承人

    Rank: 10Rank: 10Rank: 10

    积分
    3136

    猫咪币纪念章国庆纪念章中秋纪念章荣誉开发者家财万贯管理员

    发表于 2021-8-4 15:19:27 | 显示全部楼层
    水凛子 发表于 2021-8-4 15:10
    积分规则改变了吗

    好像是改了,我没动,可能一之哥哥改的,回头我问下
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 09:33
  • 签到天数: 70 天

    [LV.6]常住居民II

    153

    主题

    2036

    帖子

    2161

    积分

    管理员

    Rank: 10Rank: 10Rank: 10

    积分
    2161

    猫咪币纪念章热心会员活跃会员突出贡献三好学生中秋纪念章国庆纪念章管理员家财万贯

    发表于 2021-8-4 17:52:09 | 显示全部楼层
    水凛子 发表于 2021-8-4 15:10
    积分规则改变了吗

    是的 我改了一下
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。/ 微信公众号:一之哥哥
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表