JavaScript 同名函数与变量覆盖规则解析

作者:小括号

时间:2026-10-21

浏览:281

本文探讨 JavaScript 中同名函数与变量的覆盖行为。测试表明,普通函数声明在文件内或跨文件时,后定义的函数会覆盖前者;变量与 CSS 样式同样遵循后者优先原则。然而,当涉及函数表达式(匿名函数赋值)与函数声明混合定义时,执行结果可能优先调用先定义的函数表达式,具体机制尚需进一步验证。

文章目录

同名函数与变量的覆盖行为

经过实际测试,在未构成闭包结构的前提下,如果在同一个文件或不同的 JavaScript 文件中定义同名函数,调用该函数时将执行最后被定义的那个函数。即便采用特定的书写方式,最终结果依然会执行后定义的函数,例如弹出数值 2。


<script type="text/javascript">
 function t(){
   alert(1);
 }
 
 t();
 
 function t(){
   alert(2);
 }
</script>

此外,对于已定义的变量以及 CSS 样式的处理,同样遵循“后者优先”的原则,即后面的定义会覆盖前面的定义。

然而,针对函数类型的测试显示,若采用特定的混合定义方式,程序却会执行先定义的函数直接量,导致弹出数值 1。关于这一现象的具体成因,目前尚不明确。


<script type="text/javascript">
 var t = function(){
   alert(1);
 }
 
 function t(){
   alert(2);
 }

 t();
</script>

以上关于 JavaScript 中同名函数和变量执行问题的分析即为全部内容,旨在为读者提供参考。欢迎大家继续支持本站,获取更多技术分享。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章