JavaScript中重名的函数与对象实例详解

本文主要给大家介绍了关于javascript中重名的函数与对象的相关内容,分享出来供大家参考学习,希望能帮助到大家。

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

var a = 1;var a = 'x';console.log(a);//输出'x'

登录后复制

JavaScript允许重复定义函数。

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

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

立即学习“Java免费学习笔记(深入)”;

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); //输出 100console.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);  //输出 1console.log(v);/*输出Uncaught ReferenceError: v is not defined (anonymous function) @ mycolor.html:15*/

登录后复制

相关推荐:

jQuery和Ajax实现用户名重名详解

有关于如何解决js重名方法的先后调用问题

从JavaScript的函数重名看其初始化方式_javascript技巧

以上就是JavaScript中重名的函数与对象实例详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2788339.html

(0)
上一篇 2025年3月8日 18:24:57
下一篇 2025年3月6日 21:28:51

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • ionic3和Angular4实现接口请求及本地json文件读取实例

    本文主要介绍ionic3+angular4实现接口请求及本地json文件读取示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。 一 准备工作 首先,ionic3+Angular4的开发环境你得有,这里就不赘述。环境准…

    2025年3月8日
    200
  • Scala是如何解析Json字符串的

    本文主要介绍scala解析json字符串的实例详解的相关资料,希望通过本文能帮助到大家,让大家学习理解这部分内容,需要的朋友可以参考下,希望能帮助到大家。 Scala解析Json字符串的实例详解 1. 添加相应依赖        Json解…

    编程技术 2025年3月8日
    200
  • import与export在node.js中的使用方法

    import与export是es6中模块化的导入与导出,node.js现阶段不支持,需要通过babel进行编译,使其变成node.js的模块化代码。(关于node.js模块,可参考其他node.js模块化的文章)本文主要介绍import与e…

    2025年3月8日
    200
  • AngularJS仿微信图片手势缩放代码

    图片可以放大缩小这种功能很常见,本文主要介绍了angularjs 仿微信图片手势缩放的实例的相关资料,希望大家通过本文实现这样的功能,需要的朋友可以参考下,希望能帮助到大家。 AngularJS 仿微信图片手势缩放的实例 前言: 最近,公司…

    编程技术 2025年3月8日
    200
  • AngularJS路由删除#符号实例分享

    本文主要介绍angularjs路由删除#符号解决的办法的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下,希望能帮助到大家。 AngularJS路由删除#符号解决的办法 最近做一个web应用,有个需求需要删除angular路由中的#…

    编程技术 2025年3月8日
    200
  • React高阶组件实例解析

    本文主要带大家深入理解react高阶组件,希望大家对react高阶组件有一个更清晰的认识。 1.在React中higher-order component (HOC)是一种重用组件逻辑的高级技术。HOC不是React API中的一部分。HO…

    编程技术 2025年3月8日
    200
  • JavaScript打印星型金字塔功能

    本文主要介绍javascript实现打印星型金字塔功能,结合具体实例形式分析了javascript针对输出任意给定行数星型金字塔图形的原理与相关实现技巧,需要的朋友可以参考下,希望能帮助到大家。 让你用其它语言写也是完全一样的道理, 这道题…

    2025年3月8日 编程技术
    200
  • JavaScript find方法不支持IE如何解决

    本文主要为大家带来一篇浅谈javascript find 方法不支持ie的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 最近在前端开发中,遇到一个JavaScript 的问题。 va…

    2025年3月8日
    200
  • js实现扫雷的代码

    本文主要介绍js实现扫雷小程序的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 初学javascript,写了一个扫雷程序练练手! 扫雷规则及功能 扫雷想必大家都不陌生,就是wind…

    编程技术 2025年3月8日
    200
  • js实现简单四则运算计算器功能

    本文主要介绍js实现的简单四则运算计算器功能,涉及javascript事件响应及数值运算相关操作技巧,需要的朋友可以参考下,希望能帮助到大家。 先来看看运行效果: 具体代码如下: nbsp;html>  www.jb51.net 计算…

    2025年3月8日
    200

发表回复

登录后才能评论