我出的面試題中,有一條是問如何避免頁面引用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();
});
}