1. 程式人生 > >兩個JS之間的函式互相呼叫

兩個JS之間的函式互相呼叫

這個問題是我在工作中用到的一個方法 因為要做封裝
所以想到能不能在一個js中引用另一個js中的function
這樣的話能大大的減少程式碼量

話不多說 先上程式碼

首先要在html頁面引入兩個js檔案
這裡寫圖片描述
1.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title> </title>
</head>
<script src="1.js"></script>
<script src="2.js"></script>
<body>

</body>
</html>

1.js
這裡寫圖片描述

function a(){
    alert(1);
}

2.js
這裡寫圖片描述

a();

這樣2.js就可以直接呼叫1.js中的a函數了
當然這樣只是很簡單的方法 下面寫一個閉包中的方法(當然也很簡單啦~~)
1.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title> </title>
</head>
<script src="1.js"></script>
<script src="2.js"></script>
<body>

</body>
</html>

1.js
這裡寫圖片描述

var dianji;
(function(){
dianji = {
        a:function(){
            alert(1);
        }
}
})()

這裡的1.js是一個物件函式而且還是閉包的形式,所以我們要把dianji這個變數提升到全域性。這樣在2.js中才能呼叫這個a函式 不然回報變數未定義的錯誤。

想要js之間互相呼叫function,那麼函式就必須是全域性的

2.js
這裡寫圖片描述

dianji.a();