什么是Javascript碰撞?

3
有关此事的最佳实践是什么?
5个回答

10

JavaScript碰撞是指当您有两个全局对象具有相同名称并且一个覆盖另一个时。例如,您可能引用了两个库,这两个库都在根对象(window)上使用名为$的函数作为查询函数。理念就是应尽可能少地使用全局对象。最好的方法是为您编写的任何JS创建命名空间,就像任何其他语言一样:

var myApplication = {};

然后在命名空间内添加任何后续的函数/对象:

myApplication.init = function () {

}


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库之间的冲突,例如在一个页面中同时使用jQuery和Prototype,由于常见的$符号而导致什么都无法正常工作。


0

我认为这是当一个爱对方的Mummy Javascript和Daddy Javascript想要评估一个baby Javascript时发生的事情。

然而,我的老师在这一点上并不是很清楚...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接