当前位置:Gxlcms > JavaScript > JavaScript中重名的函数以及对象的示例

JavaScript中重名的函数以及对象的示例

时间:2021-07-01 10:21:17 帮助过:8人阅读

最近同事问了一个问题,说在js中如果函数与对象重名了会怎么样?仔细详细这个问题值得讨论一下,所以便有了这篇文章,这篇文章主要给大家介绍了关于JavaScript中重名的函数与对象的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧啊。

前言

本文主要给大家介绍了关于JavaScript中重名的函数与对象的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

JavaScript 允许重复声明变量,后声明的覆盖之前的。


输出'x'

JavaScript允许重复定义函数。

JavaScript没有重载这个概念,它仅依据函数名来区分函数。

后定义的同名函数覆盖之前的,与参数无关。


输出 "test arg0 + undefined" function test(arg1) { console.log("test arg" + arguments.length + " + " + arg1); } test(1,2); //输出 "test arg2 + 1"

实参个数如果比形参少,那么剩下的默认赋值为undefined;如果实参传的比形参数量多,那么是全部都会被传进去的,只不过没有对应的形参可以引用(但可以用arguments来获取剩下的参数)


输出 1 2

变量与函数重名的时候,变量生效

这涉及到了变量和函数的预解析:

- 变量声明会被顶置,函数声明也会被顶置且比变量更先声明。

- 变量的声明和赋值语句一起写时,JS引擎在解析时,会将其拆成声明和赋值2部分,声明置顶,赋值保留在原来位置。

- 声明过的变量不会再重复声明。


输出 100 console.log(a()); /* 报错 Uncaught TypeError: a is not a function (anonymous function) @test.html:9 */

JS中有两种函数,一种是普通函数,一种是函数对象。下面的这种就是“函数对象”,它实际上是声明一个匿名函数,然后将该函数的init方法赋值给该变量。


输出 function() { return "function"; } */ console.log(a()); //输出 "function"

函数与内部变量重名

定义普通函数,即在window变量下,定义一个key,它的名字为该函数名,值为该函数的地址。函数内部的this指向window对象。


输出 window{...} this.a = 1; //即 window.a = 1,此时window下的function a已经被该变量覆盖了。 var a = 5; //下面的这几个变量都是局部变量,仅在花括号范围内有效。 a = 10; var v = "value" return "function"; } console.log(a); //输出 function a {...} console.log(a()); //输出 "function" console.log(a); //输出 1 console.log(v); /* 输出 Uncaught ReferenceError: v is not defined (anonymous function) @ mycolor.html:15 */

总结

以上就是JavaScript中重名的函数以及对象的示例的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行