2010-05-21 47 views

回答

9

JavaScript碰撞是指當您有兩個具有相同名稱的全局對象,並且一個覆蓋另一個。例如,您可能會引用兩個庫,這兩個庫都在根對象(窗口)處使用名爲$的函數來查詢函數。這個想法是你應該儘可能少地使用全局對象。要做到這一點,最好的方法是創建你寫任何JS命名空間,就像任何其他語言:

var myApplication = {}; 

然後添加命名空間內的任何後續函數/對象:

myApplication.init = function() { 

} 
0

我認爲這是一個檢測當兩個objects collide,創建基於JavaScript的遊戲時,這個技術是非常有用的概念。

這也是指在一個頁面中使用不同的JavaScript庫的碰撞,例如jquery和一個頁面中使用的原型,並且由於衝突通常是因爲受歡迎的$符號而不起作用。

+2

或在線約會網站。 – 2010-05-21 13:21:24

0

的Javascript具有第一類,詞法範圍的函數,換句話說在函數的一面,當你調用一個變量時,它會檢查自己是否有該變量的實例,然後檢查它的父函數。

<script> 
    var foo = "test1"; 
    document.write(foo+"\n"); //test1+ a linebreak 
    (function(){ 
    document.write(foo+"\n"); //test1+ a linebreak 
    var foo = "test2"; 
    document.write(foo+"\n"); //test2+ a linebreak 
    })(); 
    document.write(foo+"\n"); //test1+ a linebreak 
</script> 
0

我還以爲是什麼時,媽咪的Javascript和爸爸的Javascript,愛對方十分誰想要EVAL嬰兒的Javascript出現這種情況。

但是,我的老師在這一點上並不十分清楚,但是...