Javascript:从另一个文件调用函数

时间:2012-07-31 18:49:15

标签: 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上运行并在控制台中查看时,我遇到了以下错误:

  

未捕获的TypeError:对象#没有方法'警报'

这意味着我还没有导入这些课程。请告诉我如何从另一个文件调用函数。在我的情况下是:致电Alert()

谢谢:)

@编辑:我添加了一些代码链接:

Helper.js

Circle.js

2 个答案:

答案 0 :(得分:10)

你为什么不看看这个答案

Including javascript files inside javascript files

简而言之,您可以使用AJAX加载脚本文件,或者在HTML上添加脚本标记以包含它(在使用其他脚本的功能的脚本之前)。我发布的链接是一个很好的答案,有两个方法的例子和解释。

答案 1 :(得分: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中包含这些文件的顺序