jsphp调用js函数函数的时候为什么会识别不到另一个文件中定义的函数

java调用js文件中的函数,怎么调试呢,不能使用console和alert,使用这两个都会报错
java调用js文件中的函数,怎么调试呢,不能使用console和alert,使用这两个都会报错
浏览 522回答 2
什么情况下会用到java调用js,是Android 还是 jsp,还是 java class?
__innocence
为啥用java调试?js有自己的调试方法,用浏览器就行了。如果你强行用java调试,java中的输出是:system.out.print
随时随地看视频15:32 提问
js文件里调用另外一个js里的函数,但是两个js里函数重复的很多,怎么办?
js文件里调用另外一个js里的函数,但是两个js里函数重复的很多,怎么办?
按赞数排序
人工合并了,或者一些其他文件不需要用的到的函数放到你们函数中执行,其他js文件用的函数用window.xxx=function(){...}申明对外公开
将两个js进行合并呀,重复的代码提取为function,重复的function保留一份
那就需要重构函数,把相同的函数进行替换
会调用最后的那个函数
留下有用的 删除没用的
或者说你把重复的funciton删除再试试
相同的函数提取出来,写在另一个js文件里,通过
window.xxx=function(){}
暴露出来。
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐其他回答(9)
这个奇怪了,反正你都得把这两个文件让用户下载,为什么不能把两个文件都用script标签引入到页面中去呢?
后面的JS文件是可以调用前面JS中的方法的,对你的例子就是先引入a.js再引入b.js,这样就可以在b()中调用 a()了
如果实在不想,可以在a.js中使用document.write("&script src='b.js' type='text/javascript'&&/script&");
然后在下面也可以调用 b.js中的方法
园豆:18530
"请注意是两个js文件,还没到页面中中去"没必要吧,直接把两个文件都引用到页面中有何不可?
园豆:8822
不引用是不行的。不然客户端的内存中没有另外一个js文件,就会找不到对象。这两个js文件是有依赖的
园豆:3131
你看看你报的错误是不是空引用错误
我觉得报错是因为异步调用的顺序问题
你的上面一个js还没加载完
就下面一个js就开始调用上面js的方法
所以才会报错、
这样写在逻辑上是没有问题的
园豆:2771
支持博友:丁学。
园豆:3151
如果你真想调用的话看看这个.
园豆:40785
园豆:1940
其实可以试试使用,JQuery的$.getScript();方法来实现的。$.getScript("/js/common/taglib/xxx.js",function(){&&functionXXX();
var otherJS="xx.js";//js文件路径
document.write('&scr' + 'ipt type="text/javascript" src="'+otherJS+'"&&/scr' + 'ipt&');
清除回答草稿
&&&您需要以后才能回答,未注册用户请先。浅谈js中调用函数时加不加括号的问题
转载 &更新时间:日 09:14:18 & 投稿:jingxian
下面小编就为大家带来一篇浅谈js中调用函数时加不加括号的问题 。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
其实总结起来如下:
函数只要是要调用它进行执行的,都必须加括号。此时,函数()实际上等于函数的返回值。当然,有些没有返回值,但已经执行了函数体内的行为,这个是根本,就是说,只要加括号的,就代表将会执行函数体代码。
不加括号的,都是把函数名称作为函数的指针,用于传参,此时不是得到函数的结果,因为不会运行函数体代码。它只是传递了函数体所在的地址位置,在需要的时候好找到函数体去执行。
所以一般时候我们都是采用的是无括号的原因。这也是由于括号的二义性,因为括号是“函数调用运算符”,相当于在执行这样一个函数,所以产生的问题在理解了之后也就理解了。
另外:除了两边不加括号,也可以两边都加括号来实现函数的拷贝,而不是执行函数,如果左边无圆括号右边有圆括号,实际就是相当于产生的是一个属性而不是一个方法了,在调用的时候只用属性名或者函数名,而不需要再用函数调用运算符圆括号了,因为它就相当于一个属性,当然也可以用函数调用的方式来调用,加上括号,拿上例子来说就是如果写成person.sayHello =sayHi(),在调用sayHello的时候就可以直接用person.sayHello或者person.sayHello()了,二者都实现相同的效果。
百度知道的回答:
函数只要是要调用它进行执行的,都必须加括号。此时,函数()实际上等于函数的返回值。当然,有些没有返回值,但已经执行了函数体内的行为,这个是根本,就是说,只要加括号的,就代表将会执行函数体代码。
不加括号的,都是把函数名称作为函数的指针,用于传参,此时不是得到函数的结果,因为不会运行函数体代码。它只是传递了函数体所在的地址位置,在需要的时候好找到函数体去执行。
以上这篇浅谈js中调用函数时加不加括号的问题 就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
如下,为什么可以在函数f定义之前就调用呢?编译器是如何处理的呢?
function f(){
alert("hehe");
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
看到楼上拿javascript和c语言进行类比,还说只有c需要预先定义,我就笑了,看来其对此一无所知。看来我必须普普法了上过大学学过c语言的,一定有印象当初一个概念性的东西如下:
目前的编程语言分为编译型语言和解释行语言。
编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻译了。而编译后需要进行连接,结果没有前置声明,连接器无法知道对应符号的位置,因此无法将多个文件链接到一起。所以此类语言在使用对应的变量之前必须要进行对应的声明。
解释型语言,是在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢。目前的脚本语言基本都是解释型语言,他们一般都有相应的脚本引擎来解释执行,他们一般需要解释器才能运行。由此,javascript和php等脚本语言理论上是根本不需要手动声明的,因为解释器会在执行前把整个脚本加载到内存中,抓取其中的声明部分,然后进行处理对应的函数流程,然后再从头开始执行。这一过程称为解释。解释器帮你做了许许多多的事情,比如申请内存,释放内存,垃圾回收,线程同步,区域通信,变量管理等,区区声明,自然不在话下。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
页面加载过程中,浏览器会对页面上或载入的每个js代码块(或文件)进行扫描,如果遇到定义式函数,则进行预处理,处理完成之后再开始由上至下执行
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
function里面的函数定义方式原本就是先调用,后声明的,,如果是var函数的话,必须要是先声明,后调用。
//function函数
function f(){
alert("hehe");
var f = function(){
alert("hehe")
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
根据我狭隘的编程语言知识,好像也就C语言对于定义和调用的顺序有要求了吧
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
声明提前啊。有一个预编译的过程。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
很简单:声明提前
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
简单地讲,就是JavaScript 会提升变量声明(Hoisting)。意味着 var 表达式和 function 声明都将会被提升到当前作用域的顶部。
更多内容就得从执行上下文,作用域来看了。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
程序有个预处理机制
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
变量提升,function提升。function f(){
alert("hehe");
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
js是从上往下的顺序执行代码的。在一个作用域中,js会先进入“进入执行上下文阶段”。这个阶段分两步,第一步是创建用var关键字创建的变量(只是创建,不做其它操作),第二步创建函数声明,也就是function f() {};。之后js会进入“执行代码阶段”,也就是执行函数的计算或赋值等操作。所以function f() {}会在执行前就定义好了。而如果把f()写在var f = function () {}前面,js在执行f()的时候,只是创建了变量f,即var f,还没初始化把function () {}赋值给f,因此f还是undefined,就不能当成函数执行了。更详细的推荐去看
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。

我要回帖

更多关于 js函数调用 的文章

 

随机推荐