一篇简单介绍 Object.defineProperty
的文章,因为我基本上没用过该方法..
开发中常常需要用到 Chrome 控制台,有的网站会在控制台中打印很多对我们来说无效的信息,比如蓝湖网站:

有的时候,在控制台运行一些脚本后,我们也想清空它们,以保持界面清洁。
清空的方式通常不外乎以下3种:
-
点击控制台左上角的 Clear console 图标:

-
通过快捷键 CTRL L 或 CMD K。 -
在控制台输入清屏语句 clear()
或console.clear()
:

clear()
执行效果本文针对第3种进行一下扩展,实现一种模仿 DOS 的 cls
命令。
你可能已经知道,Windows系统下 DOS 窗口的清屏命令是 cls
,那如何实现在 Chrome Console 下输入 cls
也能达到清屏的目的?
JavaScript 中存在一个不常用但异常强大的方法 Object.defineProperty()
,借助它事情就好办了:
Object.defineProperty(window, "cls", {
get() {
console.clear();
},
});
上述语句的效果是,当我们在控制台访问 cls
, 会自动执行 console.clear()
方法:
原因是,当我们访问 `cls` 时,相当于访问了 `window.cls`,而后者会去执行 `console.clear`。
如果想在页面加载完成后自动注入 cls
定义语句,可以借助 Tampermonkey 插件,请自行学习。
由上可知,Object.definePropery 可以将简单的属性访问变成方法调用(当然,它的能力不仅如此),这打开了很多想像,以后有机会时再深入介绍。
– END –
原文始发于微信公众号(背井):给 Chrome Console 加一个 cls 清屏命令
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/246827.html