当传递的参数和全局的变量名相同的时候

var $a = $("a");
var topValue = $("#four-choices").offset().top * 1.5 + ($("two-wide-cols").height());

var prevTarget = "#tabletop";

$(document).ready(function($) {
$("#fabric,#throws,#lighting").hide();
$a.click(function(event) {
event.preventDefault();
target = $(this).attr("href");
scrollToTarget(target, prevTarget);
});
});

function scrollToTarget(target, prevTarget) {

if (target == prevTarget) return false;
$(prevTarget).fadeOut("slow");
$(target).fadeIn("slow");

$("html,body").animate({
scrollTop: topValue
}, 1000, function() {
window.location.hash = target;
prevTarget = target;
console.log("window.prevTarget:" + window.prevTarget + ",prevTarget: " + prevTarget)
});
}

这个地方: 因为参数的名字和全局的名字相同,所以更新的值只是局部prevTarget的值,但是全局变量的值并未发生更新

时间: 2024-08-25 07:26:17

当传递的参数和全局的变量名相同的时候的相关文章

expect接收命令行传递的参数并设置为变量和打印变量的值

vim damo.expect #!/usr/bin/expect set name [lrange $argv 0 0] set age [lrange $argv 1 1] puts $name puts $age puts $argv ./damo.expect xiaoke age xiaoke age xiaoke age 传递两个参数:接收第一个参数作为name变量的值接收第二个参数作为age变量的值 $argv变量可以打印出接收到的所有参数,并且可以直接通过$argv判断参数的数量

GET方法传递中文参数的问题

中文参数通过GET方法传递(就是URL后面跟变量名和参数)的时候是不能直接传递的,需要经过URL编码转换成16进制之后才能成功.同时在接收页面直接request.QueryString方法就能接收到中文参数,这个时候不需要再次人工解码(Server.UrlDecode),服务器已经帮咱们干了这事 就像这样: val=Server.UrlEncode(val)

Javascript变量名混淆细节

前言 UglifyJS会对JS文件的变量名进行混淆处理,要理解Javascript变量混淆的细节,我们需要回答以下几个问题: 1.遇到一个变量myName,我们怎么知道这个myName变量要不要混淆 2.混淆名字怎么生成才合适,新的名字替换旧的名字时有什么要注意的地方? 3.哪些关键字会产生一个作用域? 4.作用域链跟符号表在UglifyJS里边是怎么体现? 5.UglifyJS混淆的过程是什么样? 我们先梳理一下这5个问题,最后贴出我阅读UglifyJS在这部分的实现时做的代码注释. 1.遇到

PHP学习1.5-预定义超全局数组变量

1.PHP 预定义的超全局变量数组 特性: a.特殊的数组,操作方式没有区别 b.不用声明,php脚本中默认存在,因为在php中不用定义,所以在自定义变量是应避免和预定的全局变量同名 c.在全局范围内自动生效,即在函数中直接就可以使用,不用使用global关键字访问 2.超全局变量数组 a.$_SERVER 服务器变量 $_SERVER 是一个包含诸如头部信息,路径和脚本位置的数组 示例: foreach($_SERVER as $key => $value){     echo '$_SERV

jQuery 之 setTimeout 传递字符串参数报错

当你打算调用一些jQuery代码显示隐藏的一个元素,并调用setTimeout()在一段延时之后设置其HTML的内容: 整个页面的代码是这样的. <span style="font-size:18px;"><html> <head> <title></title> </head> <body> <a href="#" id='heihei' onclick="show

More Effective C++----(12)理解&quot;抛出一个异常&quot;与&quot;传递一个参数&quot;或&quot;调用一个虚函数&quot;间的差异

Item M12:理解"抛出一个异常"与"传递一个参数"或"调用一个虚函数"间的差异 从语法上看,在函数里声明参数与在catch子句中声明参数几乎没有什么差别: class Widget { ... }; //一个类,具体是什么类 // 在这里并不重要 void f1(Widget w); // 一些函数,其参数分别为 void f2(Widget& w); // Widget, Widget&,或 void f3(const W

为什么pthread_cond_wait需要传递mutex参数

这是来自知乎的一个问题,由@吴志强提出,有意思的是,他看了大家的回答后,突然顿悟了,同时也发现有人答错了,于是乎,他自己回答了自己的问题.我看完后,发现他分析的很精彩,于是就记录在这.下面是他的自答: ----------------------------------------------------------------------------- 看了之后,我获得了启发,突然觉得这或许是跟条件变量的通常用法有关. 首先需要明白两点: wait()操作通常伴随着条件检测,如: while(

比较全局变量、全局静态变量、局部变量、局部静态变量的区别

比较全局变量.全局静态变量.局部变量.局部静态变量的区别,他们在编译完后存储位置在什么地方.初始化值在什么地方.内存什么时候分配.赋初值对这些变量有哪些影响等.要弄清楚这些问题,首先要弄清楚下面几个知识点. C语言分下面几个存储区: 1.栈区(stack) 由编译器在需要的时候自动分配释放,在不需要的时候就自动清除的变量存储区.通常存放的变量是函数的参数值.局部变量的值等,其操作方式类似于数据结构中的栈. 2.堆区(heap) 一般由程序员去分配释放,和编译器完全没有关系,直接由我们的应用程序去

pyqt信号和槽传递额外参数

环境: python2.7.8 pyqt 4.11.1 使用Pyqt编程过程中,经常会遇到给槽函数传递额外参数的情况.但是信号-槽机制只是指定信号如何连接到槽,信号定义的参数被传递给槽,而额外的参数(用户定义)不能直接传递. 而传递额外参数又是很有用处.你可能使用一个槽处理多个组件的信号,有时要传递额外的信息. 一种方法是使用lambda表达式. from PyQt4.QtCore import * from PyQt4.QtGui import * class MyForm(QMainWind