引用js文件中的函数调用
开发中遇到一个问题,代码demo如下:
test.js文件内容:
var b = getHomeCity();
Test.html文件内容:
<!DOCTYPE html>
<html>
<head>
<title>Test HTML Page</title>
<script type="text/javascript" src="test.js"></script>
<script type="text/javascript"> (
function(window){
alert(b);
}
)(window); function getHomeCity(){
return 10;
}
</script>
</head>
<body>
<!-- 这里放入内容 -->
</body>
</html>
运行后结果:

打开console发现报错:

getHomeCity()未定义:

后来改了一下getHomeCity()函数位置:
<!DOCTYPE html>
<html>
<head>
<title>Test HTML Page</title>
<script type="text/javascript">
function getHomeCity(){
return 10;
}
</script>
<script type="text/javascript" src="test.js"></script>
<script type="text/javascript"> (
function(window){
alert(b);
}
)(window); </script>
</head>
<body>
<!-- 这里放入内容 -->
</body>
</html>
运行结果:

同一Script代码块中的函数调用:
<!DOCTYPE html>
<html>
<head>
<title>Test HTML Page</title>
<script type="text/javascript"> var b = getHomeCity();
(
function(window){ alert(b);
}
)(window);
function getHomeCity(){
return 10;
}
</script>
</head>
<body>
<!-- 这里放入内容 -->
</body>
</html>
运行结果:

结论:
同一个Script代码块中,函数可以相互调用,根据函数定义提升原则,函数定义写在前面或后面都可以执行该函数
但是不同的Script代码块之间调用函数,一定要在调用函数之前定义了该函数,否则会出现undefined的情况。
引用js文件中的函数调用的更多相关文章
- JavaScript进阶(二)在一个JS文件中引用另一个JS文件
在一个JS文件中引用另一个JS文件 转载地址:http://blog.csdn.net/zndxlxm/article/details/7875787 方法一 在调用文件的顶部加入下例代码 ...
- JS文件中的中文在网页引用时显示乱码的简单解决方式
今天把一个jquery方法从前台cshtml文件转移到单独的js文件中后执行不成功,调试发现if判断中的中文字符串变成了乱码,之前在前台文件中是可以正常显示的,所以判定可能是跟文件的编码方式有关系. ...
- 在VS中让一个JS文件智能提示另一个JS文件中的成员2--具体引用
我们知道,在html中,利用<script language="javascript" type="text/javascript" src=" ...
- 在SharePoint解决方案中使用JavaScript (1) – 引用.js文件
本文是系列文章的第一篇. 在SharePoint解决方案中使用JavaScript (0) 作为在SharePoint应用程序中使用JavaScript的第一步,就是要知道如何将一个写好的.js文件, ...
- 在一个JS文件中引用另一个JS文件
方法一,在调用文件的顶部加入下例代码: document.write(”<script language=javascript src=’/js/import.js’></scrip ...
- JS文件中引用另一个JS文件
1.生产项目上遇到一个Bug,需要修改JS文件,添加Jquery代码,但是原来的页面没有添加对Jquery文件的引用,无法修改原来的页面(自动生成的HTML) 这就需要在JS文件中添加对Jquery文 ...
- js文件中函数前加分号和感叹号是什么意思?
本文转自:http://blog.csdn.net/h_o_w_e/article/details/51388500 !function(){}(); !有什么用? 从语法上来开,JavaScri ...
- 在VS中让一个JS文件智能提示另一个JS文件中的成员
“在VS中如何让一个JS文件智能提示另一个JS文件中的成员” 有时候会有这种情况:当我的一个Web页面引用了两个JS文件(假如分别叫common.js和JScript1.js),如果JScript1. ...
- js文件中使用EL表达式的问题
var str = '${str}' ; var str = '${obj.属性名}'; 只可以再jsp页面的<script></script>中使用,外部引入的js文件中不能 ...
随机推荐
- L1141(bfs思想)
一,看 1,整个方格图其实可以看做是一些不连通的图. 当然图内部必然是联通的. 2,遍历的技巧没什么. 方格图入队的技巧..额,是这样的 int gtid(int x,int y) { return ...
- navicat设置唯一
https://blog.csdn.net/Song_JiangTao/article/details/82192189
- 关于redash 自定义可视化以及query runner 开发的几篇文章
以下是几篇关于如如何编码redash 自定义可视化插件以及query runner 的连接,很有借鉴价值 参考连接 https://discuss.redash.io/t/how-to-create- ...
- 使用rbenv 进行ruby 多版本的管理
今天需要安装一个ruby 包,但是ruby 版本过低,以前使用过rvm,但是在安装rvm 的时候发现系统有异常 错误信息,发现还有另外一个不错的可选工具 rbenv 安装 我是mac 系统 使用bre ...
- python内置模块2
十五.shutil模块 ==================================================================== shutil模块是python为我们封 ...
- vuex 之既生‘mutation’何生‘action’
vuex 中,action 及 mutation 均为操作数据的作用而存在,既然二者均可改变数据,为什么要分成两个方法来处理呢,因为: Mutation 必须是同步函数 mutations: { so ...
- 63、Spark Streaming:架构原理深度剖析
一.架构原理深度剖析 StreamingContext初始化时,会创建一些内部的关键组件,DStreamGraph,ReceiverTracker,JobGenerator,JobScheduler, ...
- Ajax.BeginForm 不执行OnSuccess
今天用MVC做了一个表单提交,使用Ajax.BeginForm ,但是碰到一个奇怪的问题OnSuccess回调函数不执行.后来经过多次尝试才发现要引用两个东西 1.<script src=&qu ...
- Painting The Fence(贪心+优先队列)
Painting The Fence(贪心+优先队列) 题目大意:给 m 种数字,一共 n 个,从前往后填,相同的数字最多 k 个在一起,输出构造方案,没有则输出"-1". 解题思 ...
- 《The Boost C++ Libraries》 第一章 智能指针
Boost.SmartPointers中提供了多种智能指针,它们采用在智能指针析构时释放内存的方式,帮助管理动态分配的对象.由于析构函数在智能指针生命周期结束时被执行,所以由它管理的动态分配对象可以保 ...