防止变量被覆盖

一个很著名的防止变量被覆盖的例子是使用jQuery和Prototype JavaScript库。它们都大量使用了字符变量$。如果在应用中同时引用了这两个库,则最后添加的库将控制$。将变量传递给自执行匿名函数的技巧,可以用来保证在一块代码里面,jQuery可以使用$变量。

对于这个例子,你应该知道jQuery和$变量是彼此的别名。将jQuery变量传递给参数为$的自执行匿名函数,就能避免$被Prototype库占用了。

(function( $ ){ //直到这里,$是Prototype函数
  // 在函数作用域里面,$是jQuery对象。这是一个简单的示例,
  // 甚至是在自执行匿名函数里面定义的函数,也可以通过$来引用jQuery对象。
  console.log( $ );
})( jQuery );
时间: 2024-10-10 10:02:38

防止变量被覆盖的相关文章

C++ 类继承与对象赋值 情况下 成员变量的覆盖 浅析

[摘要] 类的继承以及对象的赋值会带来成员变量的相互传递.这里详细讨论了,类间继承带来的成员变量的传递采用覆盖原则,采用函数级的成员变量的取值:对象赋值带来的成员变量的传递采用,实函数采用数据类型的实函数,虚函数采用赋值源的虚函数,成员变量采用赋值源的成员变量,其实也是函数级的成员变量. [正文] 在类继承中,成员变量存在覆盖的情况,成员函数则存在隐藏和覆盖以及重载的情况.在类继承中,公有继承会导致公有成员变量的覆盖,从而使得成员函数的调用出现各种结果. [代码示例 01] #include<i

栈变量被覆盖的问题在不同编译器中的表现,蛋疼的VC++

看到一道题说栈中连续定义一个指针和一个数组,类似于这样 { char *ptr = 指向一个字符数组; char buf[8]; gets(buf); strncpy(ptr,buf,8); } 当修改buf数组时发生越界会修改ptr指针的指向,这设计到程序健壮性的问题. 当我用VS2013尝试这段代码时,诡异的事情发生了,明明输入了多于8个的字符,但是ptr的指向并没有改变. 于是我尝试了这样的代码 #include <stdio.h> #include <stdlib.h> i

方法和变量在继承时的覆盖和隐藏问题

作者:华清远见讲师 最近有个同学问了我一个小问题,觉得很有意思,之前一直没有想到过.他说"java中存在方法覆盖,是否存在变量的覆盖呢?".我们知道,在java中,子类可以继承父类,如果子类声明的方法与父类有重名,这时就发生了方法覆盖.其实,这实际上这又分为两种情况,就是方法和变量在继承时的覆盖和隐藏问题,这些概念性的东西看似无聊,但是在面试中还是比较常见的,所以这里来讨论下 首先我们来看几个概念 隐藏 :子类隐藏了父类的变量和方法,那么,子类不能访问父类被隐藏的变量或者方法,但是,将

成员变量的隐藏,方法的覆盖,super关键字

成员变量的隐藏:当父类和子类有相同的成员变量时,即定义了与父类相同的成员变量时,就会发生子类对父类变量的隐藏.对于子类的对象来说,父类中的同名成员变量被隐藏起来,子类就会优先使用自己的成员变量,父类成员隐藏. public class yincang {public static void main(String []args){ SonA son=new SonA(); son.showson(); FatherA father=new FatherA(); father.showfather

7. 由一道ctf学习变量覆盖漏洞

0×00 背景 近期在研究学习变量覆盖漏洞的问题,于是就把之前学习的和近期看到的CTF题目中有关变量覆盖的题目结合下进一步研究. 通常将可以用自定义的参数值替换原有变量值的情况称为变量覆盖漏洞.经常导致变量覆盖漏洞场景有:$$使用不当,extract()函数使用不当,parse_str()函数使用不当,import_request_variables()使用不当,开启了全局变量注册等. 本篇收集了几个CTF中的题目作为例子,对$$,extract(),parse_str()的问题进行总结. 0×

关于METINFO5.3漏洞引发的变量覆盖漏洞

一.$$引起的变量覆盖漏洞, 1.Include 调用了flag.php文件(调用文件还可以有require_once()或者require());2.$_200,$_403 定义两个参数,以及参数值.3.判断访问页面的方法是否为post方法和有没有参数flag.4.再接着两个foreach函数遍历数组函数,然后再将获取到的数组键名作为变量,数组中的键值作为变量的值.5.还有一个if判断语句,判断用post方法传输的数据是不是和$flag的值相同,如果相同,输出flag.6.最后输出$_200的

S5PV210-uboot源码分析-uboot环境变量

9.1.uboot的环境变量 1.环境变量的作用 (1)在我们不改变uboot源代码的情况下,只需要改变环境变量的值就可以改变uboot运行时的数据和一些特性.比如说,通过修改bootdelay环境变量,就可以更改开机倒数的秒数. 2.环境变量的优先级 (1)uboot代码当中有一个值,环境变量(DDR 环境变量的分区中)中也有一个值,uboot程序实际运行时,规则是,如果环境变量(DDR中环境变量的分区)为空,则使用代码中的环境变量的值,如果环境变量不为空,优先使用环境变对应的值. (2)比如

bash shell环境变量

$* 将所有命令行参数当做单个文本值包含 [email protected] 将所有命令行参数当做独立的文本值包含 $# 命令行参数数目 $? 最近使用的前端进程的退出状态码 $- 当前命令选项标记 $$ 当前shell的进程ID(PID) $! 最近执行的后台进程PID $0 来自命令行的命令名称 $_ shell的绝对路径名 BASH 用来调用shell的全文件名 BASH_ARGC 当前子函数中的参数数目 BASH_ARGV 含有所有指定命令行参数的数组 BASH_COMMAND 当前正在

在Lambda表达式中使用循环变量

在C#5.0之前的版本中,如果在foreach循环中的lambda使用循环变量,那么你会发现一些意想不到的现象,例子如下: var integers = new List<int> { 1, 2, 3, 4 }; var actions = new List<Action>(); foreach (var integer in integers) { actions.Add(() => Console.WriteLine(integer)); } actions.ForEac