是否有可能在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