2011-03-25 184 views
0

是否有可能在jQuery中有两个不同的变量名称相同?是否有可能有两个具有相同名称的不同变量?

我有我的jQuery链接到外部脚本。是否有可能有两个变量使用相同的字母名称?

即:

中所含compressed.js:

var m = $$('li', s), 

中所含http://www.google.com/jsapi

var m = "push", 

是这两个互相影响?

+0

你的代码很混乱,你提出的变量有不同的名字。 – Dunhamzzz 2011-03-25 14:04:09

+0

@Dunhamzzz我复制了那个错误。我的意思是问他们是否都是m。 – Stephanie 2011-03-25 14:07:10

回答

0

简单的答案是否定的,它们不会互相影响。

它的工作原理是,每个变量名是唯一的,所以mm1m2m3m4没有任何影响对方什么那么:

但是根据设置变量的值您可能会访问和更改数据,例如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' 

希望你现在更

0

不,mm2在javascript中被计为两个不同的变量。

编辑:

根据您的编辑orginial问题m和第二m被DEFINITLY互相影响。第二个变量定义是删除以前的值m

具有相同范围和名称的两个变量将始终相互影响 - 或者,我想应该说:一个变量。

+0

什么是解决这个问题的最好方法,这些是我的两个js文件www.etterengineering.com/compress.js和http://www.google.com/jsapi – Stephanie 2011-03-25 18:33:34

+0

我看到的唯一解决方案是将'm'变量在www.etterengineering.com/compress.js其他我可以看到的是有点复杂... – mattsven 2011-03-25 22:31:59

0

确定您的编辑改变了事情。如果它们在相同的范围内定义,则第二个将覆盖第一个。可能在代码中多次独立使用相同的变量,但可以在单独的函数/作用域中使用。

+0

什么..你只是困惑了我! – RobertPitt 2011-03-25 14:06:31

+0

我复制了那个错误。我的意思是问他们是否都是m。 – Stephanie 2011-03-25 14:06:39

+0

@RobertPitt,见编辑我复制了一个粘贴错误的代码 – Stephanie 2011-03-25 14:08:03

1

如果2个变量在相同范围内具有相同的名称,它们将发生冲突,后一个定义将覆盖前者。

如果由于某种原因你不能编辑变量名,你可以换的代码中分离,匿名函数整个块:

$(function(){.....}); 

这将使在不同范围的2个瓦尔只要你定义他们与var,所以他们不会冲突。这可能会导致问题,如果你的脚本的一部分需要从另一个的变量。

0

,如果他们都具有相同的范围m第二个实例将被覆盖明白了一点。

相关问题