详解获取JavaScript各种全局对象变量的方法

详解获取JavaScript各种全局对象变量的方法

全局变量在编程语言中一向被认为是一种不好的编程方法。但现实情况是,很多著名的项目都在大量的使用着全局变量,比如,MooTools就将大量的对象放到全局空间,像Browser对象和$$等。而最著名的jQuery也是用的全局变量。所以,“全局变量不好”这个理论实际上处于一种很可笑的状态中。

而将全局变量暴露在外,让用户任意修改(除非是特意设计的),更是一种不好的编程习惯,这将对导致程序很难维护。那么,我们如何知道现有的全局变量空间里有哪些全局变量呢?其实方法很简单:

// UPDATE:  This method is too naive// Returns an array of window property names//keys(window);// Inject an iframe and compare its `contentWindow` properties to the global window properties(function() {var iframe = document.createElement('iframe');iframe.onload = function() {var iframeKeys = Object.keys(iframe.contentWindow);Object.keys(window).forEach(function(key) {if(!(key in iframeKeys)) {console.log(key);}});};iframe.src = 'about:blank';document.body.appendChild(iframe);})();

登录后复制

用上面的代码我们可以做一下测试,你可以直接按功能键F12来打开console,输入上面的代码,观看输出结果。你会发现,有些对象,比如window, document, top, 和 location都是JavaScript内置的,而很多其它的对象,都是第三方JavaScript代码产生的。

推荐教程:《javascript基础教程》

立即学习“Java免费学习笔记(深入)”;

以上就是详解获取JavaScript各种全局对象变量的方法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2727772.html

(0)
上一篇 2025年3月7日 23:48:39
下一篇 2025年2月27日 16:51:09

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 分享几个实用的单行 JS 代码

                                                            单行代码极难维护(有时甚至很难理解),但这都无法阻止它们非常酷。完成编写一个极简解决方案后,你一定会很满足的。 这有一些我最近心…

    2025年3月7日
    200
  • 聊聊javascript里的sleep()方法

    很多编程语言里都有sleep(),delay()等方法,它能让我们的程序不那么着急的去执行下一步操作,而是延迟、等待一段时间。软件开发中经常会遇到需要这样的函数,比如等待几分钟去检查某一事件是否发生。JavaScript里有setTimeo…

    2025年3月7日
    200
  • JavaScript电池状态信息API之Promises

    我会经常的关注各种浏览器里新JavaScript API的发展,其中一种API就是电池状态信息API。之前我曾写过一篇关于电池状态信息API的文章,那时候这个API对于各种浏览器来说还是个新鲜事物。然而,随着技术的发展,这个电池状态信息AP…

    2025年3月7日
    200
  • js中闭包的概念

    闭包并不是 javascript 特有的,大部分高级语言都具有这一能力。 什么是闭包? A closure is the combination of a function bundled together (enclosed) with …

    编程技术 2025年3月7日
    200
  • Object.fromEntries和Object.entries的使用

    object.entries() 转换一个object为array。但是,如果你想做相反的事情怎么办?不用再想了! 使用 object.fromentries() 来把array转换为object。 const keyValuePair =…

    2025年3月7日
    200
  • 前端的基础知识巩固

    分类巩固一下前端的基础知识 很久没有回头看看html和js的一些基础知识了,周末闲来无事的时候看到了一篇关于面试题的文章,突然发现很多都忘记了,好的,那就趁热打铁,撸一波基础知识吧。 关于HTML html是超文本标记语言(Hyper Te…

    编程技术 2025年3月7日
    200
  • JavaScript document.write() 用法

    document.write() 用法 在JavaScript中document.write()函数可以向文档写入HTML表达式或JavaScript代码,用法“document.write(exp1,exp2,exp3,….)…

    2025年3月7日
    200
  • 用JavaScript检测出当前浏览器是否是无头浏览器

    什么是无头浏览器(headless browser)? 无头浏览器是指可以在图形界面情况下运行的浏览器。我可以通过编程来控制无头浏览器自动执行各种任务,比如做测试,给网页截屏等。 为什么叫“无头”浏览器? “无头”这个词来源于最初的“无头计…

    2025年3月7日
    200
  • 一起学习Javascript网页截屏的方法

    之前我曾写过如何将canvas图形转换成图片和下载canvas图像的方法,这些都是在为这个插件做技术准备。 技术路线很清晰,将网页的某个区域的内容生成图像,保持到canvas里,然后将canvas内容转换成图片,保存到本地,最后上传到微博。…

    2025年3月7日
    200
  • 分享 10 个提高 JavaScript 技能的测验问答

    刷题是我们提高自己技术的一种好方法。下面的问题很有挑战性和“指导性”。如果你知道该怎样回答,那意味着自己的水平很好,但是如果你发现自己答错了,并能够搞清楚为什么错,我认为那会更好! 推荐学习:JavaScript视频教程  、 js教程(图…

    2025年3月7日
    200

发表回复

登录后才能评论