JavaScript中重名的函数与对象示例详析
发布时间 - 2026-01-11 03:27:42 点击率:次前言

本文主要给大家介绍了关于JavaScript中重名的函数与对象的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。
JavaScript 允许重复声明变量,后声明的覆盖之前的。
var a = 1; var a = 'x'; console.log(a); //输出'x'
JavaScript允许重复定义函数。
JavaScript没有重载这个概念,它仅依据函数名来区分函数。
后定义的同名函数覆盖之前的,与参数无关。
function test() {
console.log("test");
}
test(); //输出 "test arg0 + undefined"
function test(arg1) {
console.log("test arg" + arguments.length + " + " + arg1);
}
test(1,2); //输出 "test arg2 + 1"
实参个数如果比形参少,那么剩下的默认赋值为undefined;如果实参传的比形参数量多,那么是全部都会被传进去的,只不过没有对应的形参可以引用(但可以用arguments来获取剩下的参数)
function test(arg1) {
for(var i=0; i<arguments.length; i++) {
console.log(arguments[i]);
}
}
test(1,2); //输出 1 2
变量与函数重名的时候,变量生效
这涉及到了变量和函数的预解析:
- 变量声明会被顶置,函数声明也会被顶置且比变量更先声明。
- 变量的声明和赋值语句一起写时,JS引擎在解析时,会将其拆成声明和赋值2部分,声明置顶,赋值保留在原来位置。
- 声明过的变量不会再重复声明。
var a = 100;
function a() {
return "function";
}
console.log(a); //输出 100
console.log(a());
/*
报错
Uncaught TypeError: a is not a function
(anonymous function) @test.html:9
*/
JS中有两种函数,一种是普通函数,一种是函数对象。下面的这种就是“函数对象”,它实际上是声明一个匿名函数,然后将该函数的init方法赋值给该变量。
var a = 100;
var a = function() {
return "function";
}
console.log(a);
/*
输出
function() {
return "function";
}
*/
console.log(a()); //输出 "function"
函数与内部变量重名
定义普通函数,即在window变量下,定义一个key,它的名字为该函数名,值为该函数的地址。函数内部的this指向window对象。
function a() {
console.log(this); //输出 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
*/
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
# js
# 重名函数
# 函数和变量重名
# 函数重名
# 从JavaScript的函数重名看其初始化方式
# 浅谈js中的变量名和函数名重名
# 值为
# 都是
# 也会
# 相关内容
# 说了
# 两种
# 可以用
# 不多
# 中有
# 有一定
# 将其
# 给大家
# 这篇文章
# 置顶
# 报错
# 谢谢大家
# 这几个
# 会再
# 将该
# 即在
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
Python数据仓库与ETL构建实战_Airflow调度流程详解
企业网站制作这些问题要关注
Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
香港服务器如何优化才能显著提升网站加载速度?
EditPlus中的正则表达式 实战(2)
微信小程序 闭包写法详细介绍
如何在阿里云ECS服务器部署织梦CMS网站?
黑客如何通过漏洞一步步攻陷网站服务器?
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
Android Socket接口实现即时通讯实例代码
网站制作大概多少钱一个,做一个平台网站大概多少钱?
javascript基本数据类型及类型检测常用方法小结
详解jQuery中基本的动画方法
无锡营销型网站制作公司,无锡网选车牌流程?
网站制作软件免费下载安装,有哪些免费下载的软件网站?
Windows Hello人脸识别突然无法使用
如何在阿里云域名上完成建站全流程?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
如何安全更换建站之星模板并保留数据?
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
佛山企业网站制作公司有哪些,沟通100网上服务官网?
如何在搬瓦工VPS快速搭建网站?
如何快速查询网址的建站时间与历史轨迹?
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
高端建站如何打造兼具美学与转化的品牌官网?
大学网站设计制作软件有哪些,如何将网站制作成自己app?
Android仿QQ列表左滑删除操作
EditPlus 正则表达式 实战(3)
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
Laravel如何实现用户注册和登录?(Auth脚手架指南)
高性能网站服务器配置指南:安全稳定与高效建站核心方案
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
如何用腾讯建站主机快速创建免费网站?
Laravel如何发送系统通知?(Notification渠道示例)
七夕网站制作视频,七夕大促活动怎么报名?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
Bootstrap CSS布局之列表
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
详解jQuery停止动画——stop()方法的使用
下一篇:怎么把物理机迁移到docker
下一篇:怎么把物理机迁移到docker

