天天看點

javascript中提高代碼的封裝性

我出的面試題中,有一條是問如何避免頁面引用JS,出現函數、變量重複、沖突的。

從大的方面講,應該引入javascript的子產品化開發,符合AMD規範之類;

從小的方面說,大概就是限定變量和函數的作用域了,這也涉及到一點大家如雷貫耳的閉包概念。

衆所周知,javascript沒有類,隻有函數。其實它的函數也跟類差不多了,函數裡面可以定義函數。而對于.net來說,直到近期出現的C#7,才支援這一點。

是以,我們可以将函數和變量,都定義在一個函數裡面,這樣即與外部隔絕矣:

<html>
<head></head>
<body></body>
</html>
<script>
  (function (){
    ....
  })();
</script>      
<html>
<head></head>
<body></body>
</html>
<script>
  function f1(){
    ....
  }
  f1();
</script>      
(function(){
  function f1(){}
  function f2(){}
  $("#btn1").click(function(){
    f1();
    f2();
  });
}      

繼續閱讀