JavaScript中实现块作用域的方法
发布时间:2024-04-16 10:38:39
标签:JavaScript,块作用域
例如下面这段代码
{
var temp = "12";
}
alert(temp); //输出 12
如果按照通常的编程经验,那么alert函数是不可以访问到temp变量的,因为它在另外一个块中,但是在JavaScript中,却没有块作用域的概念,所以这种语法对JS不起作用,但是我们在写JS程序的时候,尤其是比较大的程序或是程序库,为了防止命名冲突,又需要一种控制变量作用域的机制,所以这里介绍一种比较普遍的方式,来实现块作用域的概念,代码如下:
(function() {
var temp = "123";
})();
alert(temp);//输出错误
如上面的代码,定义了一个函数表达式,然后马上调用它,这种形式模仿了块作用域的概念,保护了块内的命名空间,这种方式在一些比较大的程序库中很好用
(例如JQuery),有效的避免了命名冲突。事实上JQuery正是使用的这种方式来实现块作用域的。
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 代码之余,将代码过程重要的一些代码段备份一下,如下的代码内容是关于Python从ftp服务器下载文件的的代码,希望能对小伙伴有用途。#cod
- Python是一种面向对象的语言,但它不像C++一样把标准类都封装到库中,而是进行了进一步的封装,语言本身就集成一些类和函数,比如print
- 简单来说python的内存管理机制有三种1)引用计数2)垃圾回收3)内存池接下来我们来详细讲解这三种管理机制1,引用计数:引用计
- 人工生命—群集智能—蚁群算法js版前言(摘自网上,代码是自己想出来的)对于普通大众来说,“人工生命”、“群集智能”、“仿生机器人”等等可能是
- Requests是用Python编写,基于urllib,采用Apache2 Licensed开源协议的HTTP库。它比urllib更方便,可
- 本文实例讲述了python实现Oracle查询分组的方法。分享给大家供大家参考,具体如下:1.分组的概念:关键字:group by子句结论:
- 1.下载MySQL Community Server 5.7.16 安装好2.进去mysql安装目录的bin目录下,在文件地址栏输入cmd回
- 代码如下:CREATE FUNCTION [dbo].[udf_DaysInMonth] ( @Date DATETIME )
- 最近在配置mysql服务器需要用到的一些设置,经过测试发现比较不错的配置方案,亮点在最后啊先说一点问题: Mysql中的InnoD
- 本文实例讲述了Python使用pickle模块报错EOFError Ran out of input的解决方法。分享给大家供大家参考,具体如
- 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。Socket的英文原义是"孔"
- 代码如下:<% sBASE_64_CHARACTERS = "ABCDEFGHIJKLMNOP
- MySQL中模式就是数据库SHOW DATABASES;show databases;罗列所有数据库名称CREATE DATABASE &l
- 本文实例讲述了Python调用系统底层API播放wav文件的方法。分享给大家供大家参考,具体如下:这里未使用其他库,只是使用 pywin32
- MySQL GUI Tools是一套图形化桌面应用工具套装,可以用来管理MySQL服务器。该套装工具包含三个工具:MySQL Query B
- TFRecord作为tensorflow中广泛使用的数据格式,它跨平台,省空间,效率高。因为 Tensorflow开发者众多,统一训练时数据
- 代码如下:create table T_NEWS ( ID NUMBER, N_TYPE VARCHAR2(20), N_TIT
- 以下代码已经在SQLServer2008上的示例数据库测试通过问题一:如何为数据进行加密与解密,避免使用者窃取机密数据? 对于一些敏感数据,
- 占位符通过占位符,可以指定格式进行输入或输出,以下为 fmt 标准库里的占位符:普通占位符占位符描述举例结果%v默认格式的值fmt.Prin
- 使用MSSQL的站长朋友都会被MSSQL数据库吃内存的能力佩服得五体投地,一个小小的网站,运行若干天之后,MSSQL就会把服务器上所有的内存