是否有可能在jQuery中有两个不同的变量名称相同?是否有可能有两个具有相同名称的不同变量?
我有我的jQuery链接到外部脚本。是否有可能有两个变量使用相同的字母名称?
即:
中所含compressed.js:
var m = $$('li', s),
和
中所含http://www.google.com/jsapi:
var m = "push",
是这两个互相影响?
是否有可能在jQuery中有两个不同的变量名称相同?是否有可能有两个具有相同名称的不同变量?
我有我的jQuery链接到外部脚本。是否有可能有两个变量使用相同的字母名称?
即:
中所含compressed.js:
var m = $$('li', s),
和
中所含http://www.google.com/jsapi:
var m = "push",
是这两个互相影响?
简单的答案是否定的,它们不会互相影响。
它的工作原理是,每个变量名是唯一的,所以m
,m1
,m2
,m3
,m4
没有任何影响对方什么那么:
但是根据设置变量的值您可能会访问和更改数据,例如m[2]
原因是m
是一个数组或对象,您可以通过使用[]
来访问各个元素,这可能会让您感到困惑。的变量如何影响海誓山盟
实施例:
var a = 'hello';
var b = 'world';
alert(a); //hello
alert(b); //world
alert(a + b); //helloworld
alert(b + a); //worldhello
a = b;
alert(a); //world
alert(b); //world
b = 'hey';
alert(b); //hey
如可以从实施例见上文如果修改已经设置它改变了值的变量的值,如果变量尚未设定其赋值;
你应该学会自我调用匿名函数的一个很好的技巧,我们使用这些函数的原因是创建一个框来放置我们的代码,所以它不会影响框外的其他任何东西。
例
var hey = 'hey';
(function(){
var hey = 'bye'; //This is only effective inside the {}
alert(hey); //You get 'bye';
//Access the global scope
alert(window.hey); //You get 'hey';
//modifiy the external scope
window.hey = 'modified from within the function';
//expose vars inside the function scope to the global window:
window.exposed = hey; //Remember hey is internal and is set to 'bye';
})();
alert(exposed); //'bye';
alert(hey); //'modified from within the function'
希望你现在更
不,m
和m2
在javascript中被计为两个不同的变量。
编辑:
根据您的编辑orginial问题m
和第二m
被DEFINITLY互相影响。第二个变量定义是删除以前的值m
。
具有相同范围和名称的两个变量将始终相互影响 - 或者,我想应该说:一个变量。
确定您的编辑改变了事情。如果它们在相同的范围内定义,则第二个将覆盖第一个。可能在代码中多次独立使用相同的变量,但可以在单独的函数/作用域中使用。
什么..你只是困惑了我! – RobertPitt 2011-03-25 14:06:31
我复制了那个错误。我的意思是问他们是否都是m。 – Stephanie 2011-03-25 14:06:39
@RobertPitt,见编辑我复制了一个粘贴错误的代码 – Stephanie 2011-03-25 14:08:03
如果2个变量在相同范围内具有相同的名称,它们将发生冲突,后一个定义将覆盖前者。
如果由于某种原因你不能编辑变量名,你可以换的代码中分离,匿名函数整个块:
$(function(){.....});
这将使在不同范围的2个瓦尔只要你定义他们与var
,所以他们不会冲突。这可能会导致问题,如果你的脚本的一部分需要从另一个的变量。
,如果他们都具有相同的范围m
第二个实例将被覆盖明白了一点。
你的代码很混乱,你提出的变量有不同的名字。 – Dunhamzzz 2011-03-25 14:04:09
@Dunhamzzz我复制了那个错误。我的意思是问他们是否都是m。 – Stephanie 2011-03-25 14:07:10