想要在一个文件中调用函数,而在另一个文件中定义函数

时间:2018-10-13 18:50:20

标签: javascript html

我想调用在second.js文件的first.js文件中定义的函数。这两个文件都在HTML文件中定义,例如:

我想在second.js中调用first.js中定义的fn1()。根据我的搜索答案,如果首先定义了first.js是可能的,但是根据我的测试,我没有找到任何方法。谢谢

编辑: 下面是示例代码: second.js

class A(object):
   def __getattr__(self, name):
       print "__getattr__ : %s" % name
       x = A()
       setattr(self, name, x)
       print self.__dict__
       print getattr(self, name)
       return x # getattr(self, name)

 x = A()
 x.a = 1 .  # Works fine.
 print x.a

 x.b.c = 2 # Works fine.
 print x.b.c

first.js

this.getSecEnabled = function(){   ----> i dont know how this is used here..
     return SecEnabled;
}

问题:无法在此处显示已启用/已禁用的任何语句。

请帮助我是javascript新手

4 个答案:

答案 0 :(得分:3)

尝试在first.js之前加载second.js

答案 1 :(得分:0)

通常,如果您不想等到文档加载完毕,则必须按以下顺序加载脚本:

  • second.js
  • first.js

但是,如果您要更改第二秒的代码以在文档准备就绪时执行,则可以按任何顺序加载脚本。

How to run script when document is ready

答案 2 :(得分:0)

是的,您可以做到。大多数最新的浏览器均支持开箱即用的ECMAScript模块。您需要做的只是:

确保所有这些链接都在浏览器中是这样的:

<script src="./path/to/script1.js" type="module" />

现在您可以执行以下操作:

script1.js

   export function getSecEnabled (){   
     return SecEnabled;
}

script2.js

 import { getSecEnabled } from 'path/to/script1.js';

if( getSecEnabled() == "SecEnabled" ){
    alert(" Security Enabled....!!");
}else{
        alert(" Secuity Disbaled.!!");
}

答案 3 :(得分:0)

我有一个名为include()的函数。

此功能的作用是告诉浏览器加载文件,然后执行操作。

因此,只能在文件加载后执行操作。

所以就您而言;我们将首先包含first.js,然后包含second.js

因此,second.js将仅在first.js运行之后运行。

这是代码:

function include(file){
    return new Promise(function(resolve, reject){
            var script = document.createElement('script');
            script.src = file;
            script.type ='text/javascript';
            script.defer = true;
            document.getElementsByTagName('head').item(0).appendChild(script);

            script.onload = function(){
            resolve()
            }
            script.onerror = function(){
              reject()
            }
          })

     /*I HAVE MODIFIED THIS TO  BE PROMISE-BASED 
       HOW TO USE THIS FUNCTION 

      include('js/somefile.js').then(function(){
      console.log('Do an action that depends on somefile.js');
      },function(){
      console.log('Do not do an action that depends on somefile.js');
      })
      */
    }



    include('first.js')
    .then(()=>{
      include('second.js');
    })