html 函数未定义,为什么我的JavaScript函数有时“未定义”?

本文探讨了JavaScript中遇到函数如'copyArray未定义'错误的常见情况,涉及脚本加载顺序、跨文件调用和可能的定时问题。作者分享了示例代码并寻求解决方案,包括检查函数定义位置和排除资源加载顺序影响。
摘要由CSDN通过智能技术生成

我调用我的JavaScript函数。为什么我有时会得到错误’myFunction未定义’,当它被定义?

例如。我偶尔会得到“copyArray未定义”,即使在这个例子中:

function copyArray( pa ) {

var la = [];

for (var i=0; i < pa.length; i++)

la.push( pa[i] );

return la;

}

Function.prototype.bind = function( po ) {

var __method = this;

var __args = [];

// Sometimes errors -- in practice I inline the function as a workaround.

__args = copyArray( arguments );

return function() {

/* bind logic omitted for brevity */

}

}

可以看到,copyArray是在那里定义的,所以这不能是关于脚本文件加载的顺序。

我已经得到这种情况下更难以解决,其中调用函数位于另一个文件,应该被调用函数后加载。但这是我可以呈现的最简单的情况,并且似乎是同样的问题。

它不会在100%的时间发生,所以我怀疑某种负载定时相关的问题。但我不知道什么。

@Hojou:这是问题的一部分。我现在得到这个错误的函数本身是我的addLoadEvent,它基本上是公共库函数的标准版本。

@James:我明白,并且在函数中没有语法错误。在这种情况下,也会报告语法错误。在这种情况下,我只得到’未定义’的错误。

@David:这种情况下的脚本驻留在使用正常的< script src =“file.js”>< / script>方法在页面的头部分。

@Douglas:有趣的想法,但如果是这样,我们怎么可能有信心调用用户定义的函数?在任何情况下,我试过这个,它没有工作。

@sk:这种技术已经跨浏览器测试,基本上从Prototype库复制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值