[英]javascript includes problems and pitfalls
一個人在使用javascript時會遇到什么樣的問題和陷阱( <script src="sample.js" type="text/javascript><script>
),以及如何避免它們?
我問這個問題是因為我剛遇到一個問題,我在整體布局模板中包含的速度模板文件中編寫了JavaScript代碼。 布局模板包含許多不同的javascript。 我的JavaScript代碼本身在頁面上就可以正常工作,但是當包含在布局模板中時,它開始崩潰。 (沒有javascript錯誤,但無法正常運行)。
聽起來好像您正在碰撞全局對象。 在這種情況下,最好的選擇是將所有代碼移到名稱空間中,這意味着創建一個對象或匿名函數來容納您編寫的javascript代碼。
例如,而不只是做
var myWord = 'hello!';
alert(myWord);
您可能已經在使用myWord
這個名稱了
(function() {
var myWord = 'hello!';
alert(myWord);
})();
或者如果您需要堅持的事情,
var myUniqueNamespace = new (function() {
this.myWord = 'hello!';
})();
alert(myUniqueNamespace.myWord);
您只需要確保myUniqueNamespace
確實是唯一名稱,就可以在其中添加任何您喜歡的名稱作為屬性。
重新封閉評論:不太完全,但是我們可以像這樣
var myUniqueNamespace = new (function() {
var myWord = 'hello!';
this.sayWord = function() { return myWord; };
})();
alert(myUniqueNamespace.sayWord());
myWord
存在於用於創建myUniqueNamespace
的匿名函數的范圍內,因此您不能直接從外部進行操作(類似於其他語言中的private成員)。 然而該方法sayWord
在相同的范圍內被定義myWord
和關閉在其上,這意味着獲得myWord
保持在確定指標的方法內。 也許這不是最清楚的解釋,但我希望這個例子能使之清楚。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.