10

我只是 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 上运行并在控制台中查看时,我遇到了这个错误:

未捕获的类型错误:对象 # 没有方法“警报”

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

谢谢 :)

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

助手.js

Circle.js

4

2 回答 2

11

你为什么不看看这个答案

在 javascript 文件中包含 javascript 文件

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

于 2012-07-31T18:56:03.693 回答
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 中的顺序

于 2016-03-18T19:57:32.983 回答