2011-03-25 157 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第二個實例將被覆蓋明白了一點。

相關問題