首页 > 其他分享 >js Global 对象属性

js Global 对象属性

时间:2024-01-12 11:34:08浏览次数:34  
标签:对象 Global sayColor js color window 属性 构造函数

Global 对象有很多属性,其中一些前面已经提到过了。像 undefined、NaN 和 Infinity 等特殊 值都是 Global 对象的属性。此外,所有原生引用类型构造函数,比如 Object 和 Function,也都是 Global 对象的属性。

undefined NaN Infinity Object Array Function Boolean String
特殊值 undefined 特殊值 NaN
特殊值 Infinity Object 的构造函数 Array 的构造函数 Function 的构造函数 Boolean 的构造函数 String 的构造函数
Number
Date
RegExp
Symbol
Error EvalError RangeError ReferenceError SyntaxError TypeError URIError

Number 的构造函数
Date 的构造函数
RegExp 的构造函数
Symbol 的伪构造函数
Error 的构造函数 3 EvalError 的构造函数
 RangeError 的构造函数 ReferenceError 的构造函数 SyntaxError 的构造函数 TypeError 的构造函数 URIError 的构造函数

1. window 对象:

虽然 ECMA-262 没有规定直接访问 Global 对象的方式,但浏览器将 window 对象实现为 Global 对象的代理。因此,所有全局作用域中声明的变量和函数都变成了 window 的属性。来看下面的例子:

var color = "red";
function sayColor() {
  console.log(window.color);
}
window.sayColor(); // "red"

这里定义了一个名为 color 的全局变量和一个名为 sayColor()的全局函数。在 sayColor()内部, 通过 window.color 访问了 color 变量,说明全局变量变成了 window 的属性。接着,又通过 window 对象直接调用了 window.sayColor()函数,从而输出字符串。

另一种获取 Global 对象的方式是使用如下的代码:

let global = function() {
  return this;
}();

这段代码创建一个立即调用的函数表达式,返回了 this 的值。如前所述,当一个函数在没有明确 (通过成为某个对象的方法,或者通过 call()/apply())指定 this 值的情况下执行时,this 值等于 Global 对象。因此,调用一个简单返回 this 的函数是在任何执行上下文中获取 Global 对象的通用方式。

标签:对象,Global,sayColor,js,color,window,属性,构造函数
From: https://blog.51cto.com/u_16298168/9212840

相关文章

  • js Math方法
    ECMAScript提供了Math对象作为保存数学公式、信息和计算的地方。Math对象提供了一些辅助计算的属性和方法。1.Math对象属性:Math对象有一些属性,主要用于保存数学中的一些特殊值。下表列出了这些属性。Math.EMath.LN10Math.LN2Math.LOG2EMath.LOG10EMath.PIMath.SQRT1_......
  • 无涯教程-JSON - Python编程
    本章介绍如何使用Python编程语言编码和解码JSON对象。让我们从准备环境开始,以使用Python进行JSON编程。在开始使用Python编码和解码JSON之前,您需要安装任何可用的JSON模块,在本教程中,我们已经下载并安装了Demjson,如下所示-$tarxvfzdemjson-1.6.tar.gz$cddemjson-1.6$pyt......
  • 无涯教程-JSON - Perl编程
    本章介绍如何使用Perl编程语言编码和解码JSON对象,让我们从准备环境开始,开始使用PerlforJSON进行编程。在使用Perl编码和解码JSON之前,需要安装JSON模块,该模块可以从CPAN获得。下载JSON-2.53.tar.gz或任何其他最新版本后,请按照以下步骤操作-$tarxvfzJSON-2.53.tar.gz$cdJSO......
  • 软件测试/测试开发全日制|Pyest结合json实现数据驱动测试
    前言数据驱动测试是提高代码覆盖率和可靠性的重要方法。结合pytest和JSON(JavaScript对象表示)文件可以轻松实现数据驱动测试。和CSV文件类似,Python读取json文件也不需要借助其他的第三方库,因此我们不需要进行额外的环境安装。下面是如何使用pytest和JSON文件进行数据驱动测试的步骤......
  • JS加密/解密之js加密小工具
    JS加密的原理和方法什么是JS加密JS加密是一种将js代码转换成不易被阅读和修改的形式的技术JS加密的目的是保护js代码的版权,防止被恶意篡改或盗用JS加密的难度和效果取决于加密算法的复杂性和安全性JS加密的常见方法压缩和混淆:将js代码的空格,换行,注释等无关字符删除,将变量名,函数名等......
  • VSCode 终端显示“pnpm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此
    如果出现以下问题: 解决方案:1.用get-ExecutionPolicy命令在vscode终端查询状态get-ExecutionPolicy#返回Restricted说明状态是禁止的Restricted2.用set-ExecutionPolicyRemoteSigned命令更改状态即可set-ExecutionPolicyRemoteSigned此时再输入 get-ExecutionP......
  • node.js 安装与环境变量配置
    一、安装node.js官网:下载地址 历史版本:历史版本下载地址    下载完毕后,可以安装node,一路默认选项即可。这里我的安装路径是:D:\environment\nodejs。建议不要安装在系统盘(如C:),建议安装的路径不要有中文。 二、设置nodejsprefix(全局)和cache(缓存)路径1、新建文件夹:n......
  • vue使用flexible.js 最大宽度只有540
    分辨率大于540px的时候,flexible限制为540,一般的手机显示没有问题,但对于大于540的竖屏屏幕,可能右边就会留白。我想让横屏的时候限制在540,竖屏的时候根据页面实际宽度自适应,解决方法如下:1、安装npminstalllib-flexible--save 2、为了避免每次安装的时候,都被覆盖掉,打开\nod......
  • 【js手写】手写目录
    实现防抖(debounce)和节流(throttle)函数  https://www.cnblogs.com/lishuxuan/p/17339575.html实现call函数,apply函数,bind函数  https://www.cnblogs.com/lishuxuan/p/17339575.html实现js对象扁平化   https://www.cnblogs.com/lishuxuan/p/17356804.html实现深拷贝函......
  • dremio+nessie+dbt+ cube.js 实现简单数据服务
    以前我简单写过关于dremio与cube.js集成的,随着dremio官方自己维护了一个dbt的adapter以及nessie方便的类似git的多版本元数据服务的提供,将这几个集成在一起是一个很不错的选择,尤其是希望实现自己的headlessbi服务,同时利用dbt强大的数据建模能力,可以实现数据模型开发的工......