`
firefly_zp
  • 浏览: 19953 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Javascript 没有重载的理解

阅读更多
在 Javascript 中,是没有重载的概念的。我们可以通过将函数名想像为指针的方法对其加以深入的理解(很好理解)。

下面的一个例子可以让大家很容易的明白 Javascript 中无重载的概念。

function addNum(s1){
		return 100+s1;
	   }
			
	   function addNum(s2){
		return 200+s2;
	   }
			
	   alert(addNum(1)); // 输出 201,实际上第二个函数覆盖了第一个函数。


看下面的变量声明函数法对上述概念的理解:

var addNum = function(s1){
		return 100+s1;
	   };
			
	   addNum = function(s1){
		return 200+s1;
	   };
			
	   alert(addNum(1)); // 输出 201,更容易看出第二个函数覆盖了第一个函数。


对于变量的声明,实际上此处的 addNum 是对 Function 对象的一个引用,可以想象成指针,变量声明了两次,实际上第二次的声明切断了函数第一次的引用而指向了另外一个对象。

在这里,我们可以把每个函数都看做是 Function 类型的实例。由于这里的函数是对象,则函数名实际上是指向函数对象的指针,而并不会与某个具体的函数绑定。
分享到:
评论

相关推荐

    JavaScript重载函数实例剖析_.docx

    ### JavaScript重载函数实例剖析 #### 一、引言 在传统的面向对象编程语言如Java或C++中,重载(Overloading)是一种常见的特性,它允许开发者在同一作用域内定义多个同名但参数列表不同的方法。然而,在...

    通过实例理解javascript中没有函数重载的概念

    为了理解JavaScript中没有函数重载的原因,我们可以通过以下几点来详细探讨: 1. 函数的命名 在JavaScript中,函数的命名遵循标识符的规则,函数名其实就是指向函数对象的一个引用。当你声明一个同名的新函数时,它...

    JavaScript重载函数实例剖析

    JavaScript中的函数重载是开发者在使用强类型语言如C++或Java时经常遇到的概念,但在JavaScript这门动态类型的脚本语言中,实际上并没有内置的函数重载机制。然而,由于JavaScript的灵活性,开发者可以通过一些技巧...

    TypeScript 入门教程从 JavaScript 程序员的角度总结思考,循序渐进的理解 TypeScript.zip

    5. **高级对象和函数**:TypeScript 支持泛型、扩展运算符、函数重载等特性,使代码更灵活且易于理解。 6. **编译目标**:TypeScript 可以编译成 ES5、ES6 或更高版本的 JavaScript,这使得它能兼容广泛的不同...

    让 JavaScript 轻松支持函数重载 (Part 2 - 实现)

    首先,我们需要理解什么是函数重载以及在不同编程语言中是如何实现它的。举个例子,在C++或Java中,可以通过在同一个作用域内声明具有相同名称但参数列表不同的方法来实现函数重载。编译器会根据提供的参数类型和...

    JavaScript中的函数重载深入理解

    在ECMAScript标准中,函数重载是一个允许在相同作用域内声明多个同名函数的概念,但是在JavaScript中实际上是没有函数重载的。这与Java等其他支持函数重载的语言不同。在Java中,你可以声明多个同名函数,只要它们的...

    关于JS重载

    总结来说,虽然JavaScript没有内置的函数重载机制,但我们可以通过检查参数个数、类型、使用默认值、rest参数以及命名参数等多种方式来模拟重载功能,以满足不同场景的需求。理解并灵活运用这些技巧,可以使我们的...

    Javascript中的arguments与重载介绍

    在JavaScript中,由于语言的灵活性,并没有像其他语言(如Java、C#)那样支持传统的函数重载,即通过参数类型或数量的不同来调用不同的函数。然而,JavaScript开发者通常可以通过其他技术手段来模拟这种行为,比如...

    Javascript 面向对象 重载

    在深入探讨JavaScript如何模拟面向对象重载之前,我们需要先理解重载的概念以及它的作用。在面向对象编程中,重载(Overloading)是一种在同一个作用域内可以声明几个功能类似的同名函数,但是它们的参数类型、个数...

    详解JS函数重载

    最后,值得注意的是,虽然模拟函数重载可以增加代码的灵活性,但过度使用也可能导致代码难以理解和维护。特别是在参数个数不确定的情况下,代码逻辑会变得复杂,建议谨慎使用这些技术。在实际开发中,如果需要处理...

    Javascript实现运算符重载详解

    最后,这种方式可能会增加代码的复杂性,对维护和理解带来困难,尤其是当运算符重载涉及的类和运算符数量较多时。 总的来说,虽然JavaScript不支持原生的运算符重载,但通过上述的“曲线救国”方式,开发者可以模拟...

    添加JavaScript重载函数的辅助方法2

    首先,文件提到的“添加JavaScript重载函数的辅助方法”是一个自定义的JavaScript函数库,用于帮助开发者创建具有不同参数签名的重载函数。在JavaScript语言中,函数重载并不是一个内置的特性,但通过一些技巧可以...

    JavaScript 的方法重载效果

    在JavaScript中,由于其动态类型的特性,我们无法像在某些静态类型语言(如Java或C++)那样直接声明方法的重载,即同一方法名但参数列表不同的多个版本。然而,我们可以通过一些技巧来模拟方法重载的效果。下面将...

    JavaScript面向对象编程指南(第2版).rar

    本指南的第二版深入探讨了JavaScript的面向对象特性,旨在帮助开发者更好地理解和应用这一编程范式。 JavaScript的面向对象主要基于三个核心概念:封装、继承和多态。封装是将数据和操作这些数据的方法结合在一起,...

    JavaScript20200524.zip

    "js的重载"可能涉及函数重载的概念,虽然JavaScript不直接支持函数重载,但可以通过不同的参数数量或类型实现类似效果。 最后,"js的局部变量"是函数内部声明的变量,仅在该函数内部可见,这是理解作用域和闭包的...

    .Principles.of.Object-Oriented.Programming.in.JavaScript

    本书《面向对象编程在JavaScript中的原则》旨在帮助读者深入理解并掌握如何在JavaScript环境中运用面向对象编程(OOP)的概念和技术。对于那些熟悉C++或Java等语言中的类为基础的OOP模型的开发者来说,JavaScript...

    layui数据表格重载实现往后台传参

    在阅读时,应当根据上下文理解其意思,以确保知识的准确传达。通过以上内容,我们了解了layui数据表格的重载功能以及如何实现参数的传递给后端处理,这对于开发动态交互的Web应用具有重要的参考价值。

Global site tag (gtag.js) - Google Analytics