簡體   English   中英

如何在它們自己的范圍內保留用於不同事物的相同函數名(它可能不是正確的詞)?

[英]How can I keep same function names meant for different things in their own scope (It may not be the right word)?

我創建了兩個不同的獨立腳本來更新兩個不同的畫布。 問題在於兩個腳本中的某些函數名稱相同。 這將導致沖突。

我可以將它們組合在一起以形成一個大腳本,但是如果我嘗試添加更多功能,那很快就會變得混亂。 同樣,對每個函數進行不同的命名將很繁瑣且容易出錯。

有什么辦法可以將具有相同功能名稱的腳本放在一個頁面上而不會發生任何沖突?

這是我的代碼:

var DropEffect = {

  var dropSize, speed;

  var createDrops = function () {
     var canvas = document.getElementById("drop");
     ....
  };
}

這是我得到的錯誤:

 Unexpected token name «dropSize», expected punc «:»

嘗試這樣做:

文件1:

var nm1 = {

myFunction: function(){

}

}

檔案2:

var nm2 = {

myFunction: function(){

}

}

現在,無論何時要訪問,都可以使用nm1.myFunction()或nm2.myFunction()

通常,這類對象稱為名稱空間

修改問題后,

var DropEffect = {

  var dropSize, speed;

  var createDrops = function () {
     var canvas = document.getElementById("drop");
     ....
  };
}

這是不正確的。 您正在對象(名稱空間)中創建變量。對象只了解鍵值對。 最好這樣做

var DropEffect = {

  dropSize : "",
  speed : "",
  createDrops : function () {
     var canvas = document.getElementById("drop");
     ....
  };
}

現在將其用作: DropEffect.dropSize等。

您可以像這樣在IIFE中包裝代碼:

(function(){

   var theFunction = function(){

      console.log('foo');

   };

   theFunction();

}());

(function(){

   var theFunction = function(){

      console.log('bar');

   };

   theFunction();

}());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM