2012-07-31 70 views
7

我只是JavaScript的新手,所以當我閱讀一個Javascript文檔,並且有許多複雜的結構我無法遵循。Javascript:從另一個文件調用函數

下面是我正在閱讀的Javascript代碼的簡短說明:在我的情況下有兩個主要文件:Helper.jsCircle.js

在Helper.js中,有一個方法名稱:using:function(param1,param2)。以下是代碼Circle.js

Helper.using('py.Figures', function (ns) { 

    ns.Circle = function (params) { 
     // some additional methods and code here 
    } 

    ns.Alert = function(){ // for the test purpose 
      alert('hello'); 
    } 
}); 

,並在文件中的test.html,我寫一些像這樣的代碼:

<script src="Helper.js"></script> 
<script src="circle.js"></script> 
<script> 
    test = function(){ 
     py.Figures.Alert(); // calling for testing purpose 
    } 
</script> 
<body onload="test();"></body> 

當我在Chrome和查看在控制檯中運行,我遇到這個錯誤:

Uncaught TypeError: Object # has no method 'Alert'

這意味着我還沒有導入這些類。請告訴我如何從另一個文件調用函數。在我的情況是:在調用Alert()

謝謝:)

@編輯:我加入了一些代碼鏈接:

Helper.js

Circle.js

+0

我建議您上傳小提琴這些文件,以便我們將能夠看到整個操作的順序照顧。 – Novak 2012-07-31 18:51:46

+0

'Helper.using'有效嗎?它做它應該做什麼(創建名稱空間)? – 2012-07-31 18:52:31

+0

* Helper.using('py.Figures'*對我來說看起來不像JavaScript。 – 2012-07-31 18:53:36

回答

7

你爲什麼不拿看這個答案

Including javascript files inside javascript files

簡而言之,您可以使用AJAX加載腳本文件,或者在HTML上放置一個腳本標記以包含它(在使用其他腳本功能的腳本之前)。我發佈的鏈接是一個很好的答案,並有兩個方法的多個例子和解釋。

+0

這是正確的答案! – varagrawal 2017-11-23 00:39:50

1

是的,你可以。請檢查我的小提琴的澄清。爲了演示的目的,我將代碼保存在同一位置。您可以像在兩個不同的Javascript文件中顯示的那樣提取該代碼,並將它們加載到html文件中。

https://jsfiddle.net/mvora/mrLmkxmo/

/******** PUT THIS CODE IN ONE JS FILE *******/ 

    var secondFileFuntion = function(){ 
     this.name = 'XYZ'; 
    } 

    secondFileFuntion.prototype.getSurname = function(){ 
    return 'ABC'; 
    } 


    var secondFileObject = new secondFileFuntion(); 

    /******** Till Here *******/ 

    /******** PUT THIS CODE IN SECOND JS FILE *******/ 

    function firstFileFunction(){ 
     var name = secondFileObject.name; 
     var surname = secondFileObject.getSurname() 
     alert(name); 
     alert(surname); 
    } 

    firstFileFunction(); 

如果您使用的構造函數,並試圖從訪問它的屬性或方法在第二個文件中的對象,它會給你這是目前在另一個文件屬性的訪問。

只要採取包括index.html中

相關問題