JavaScript中通过arguments对象实现对象的重载

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
/*
 *1.js 中不存在函数的重载
 2.js函数定义时候的形参个数,和执行时候时,传递的实参的个数可以不一样。
 3.js执行时候,会将真实的参数,封装成组arguments

 */
function add(a){
	return a+10;
}
var add=new Function("a","return a+10");
//alert(add(5));
function add(num1,num2){
	return num1+num2;
}
var add=new Function("num1","num2","return num1+num2");
alert(add(5,6));
alert(add(5));//这样调用的结果是NaN:因为调用的时后定义的两个参数的函数
//也就是虽然有var的声明,但是javascript中只要变量名称相同,后定义的就会覆盖
//之前定义的=======得出的结论就是js中不存在函数的重载。

//-------------------用arguments对象模拟方法的重载-----
//-依据不同的参数个数,调用不同的代码块,最多25个参数
function addNum(){
	alert(arguments.length);
	for(var x=0;x<arguments.length;x++){
		alert(arguments[x]);
	//这个对象只能爱函数体内
	}
	if(arguments.length==1){
		return arguments[0]+10;
	}else if(arguments.length==2){
		return arguments[0]+arguments[1];
	}else{
		return "参数错误,请核对";
	}
}
var value=addNum(10,20,30);
alert("函数的返回值:"+value);//结果value的值就是:"参数错误,请核对"
//事实上,是通过参数的判断,去实现调用不同的函数功能,并且返回不同的值;这样做类似的实现了java中的重载
//但是本质上,js中是没有重载的,相同的变量,在不同的位置出现,若赋值后,必然会覆盖前面声明的变量。当然
//这里面排除掉函数内部的量和函数外部变量的这一种关系。
</script>
</head>
<body>

</body>
</html>

JavaScript中通过arguments对象实现对象的重载

时间: 2024-08-08 01:27:55

JavaScript中通过arguments对象实现对象的重载的相关文章

javascript中的arguments内置对象

什么是arguments arguments 是是JavaScript里的一个内置对象,它很古怪,也经常被人所忽视,但实际上是很重要的.所有主要的js函数库都利用了arguments对象.所以agruments对象对于javascript程序员来说是必需熟悉的. 所有的函数都有属于自己的一个arguments对象,它包括了函所要调用的参数.他不是一个数组,如果用typeof arguments,返回的是'object'.虽然我们可以用调用数据的方法来调用arguments.比如length,还有

关于javascript中的 执行上下文和对象变量

什么是执行上下文 当浏览器的解释器开始执行我们的js代码的时候,js代码运行所处的环境可以被认为是代码的执行上下文,执行上下文(简称-EC)是ECMA-262标准里的一个抽象概念,用于同可执行代码(executable code)概念进行区分.一般来讲,执行上下文可以在以下三种情况产生: 1. 全局上下文(globalContext)   2. function 内部 3. Eval code. 看个例子,包含全局和function内部上下文 紫色框内表示全局的执行上下文,同时内部会有3个不同的

javaScript中eval()方法转换json对象

原文:javaScript中eval()方法转换json对象 <script language="javascript"> var user = '{name:"张三",age:23,'+ 'address:{city:"青岛",zip:"266071"},'+ 'email:"[email protected]",'+ 'showInfo:function(){'+ 'document.wri

JavaScript中使用arguments来实现不定参数的计算

在JavaScript中可以使用arguments对象来实现不定参数 例如:不定参数的相加实现 add(1,2)      ==>3 add(1,2,3)   ==>6 var add = function(){ var total = 0; for(var index = 0;index < arguments.length; index++){ total = total + arguments[index]; } return total; } alert("1加2的值是

JavaScript中的arguments,callee,caller,call,appy

<script language="JavaScript">/* * 演示arguments的用法,如何获取实参数和形数数 */function argTest(a,b,c,d){    var numargs = arguments.length;     // 获取被传递参数的数值.    var expargs = argTest.length;       // 获取期望参数的数值.    alert("实参数目为:"+numargs)    a

【拾遗】理解Javascript中的Arguments

前言 最近在看JavaScript相关的知识点,看到了老外的一本Javascript For Web Developers,遇到了一个知识盲点,觉得老外写的很明白很透彻,记录下来加深印象,下面是我摘出来的一些片段,片段下有对应的解释,希望也能帮助其他人扫除这个盲点.如有翻译的不得体的地方还请在评论区指出,不胜感激. 理解Javascript中的Arguments Function arguments in ECMAScript don’t behave in the same way as fu

Javascript中的函数(Function)与对象(Object)的关系

今天我们来尝试理解Function和Object.因为这个里面有些人前期可能会搞糊涂.他们之间到底是什么关系.当然也不除外当初的我. 注意:官方定义: 在Javascript中,每一个函数实际上都是一个函数对象. 我们先来看最简单的两个代码,也是最容易理解的. function fn(){} var obj = {} console.log(fn instanceof Function)//true console.log(obj instanceof Object)//true console

Javascript中的&quot;函数是第一类对象(first-class object)&quot;

本身这句话很好解释,函数有两个主要特点,援引自 陈新 译的<JavaScript模式>: 1.函数是第一类对象: 函数可以在运行时动态创建,还可以在程序执行过程中创建. 函数可以分配变量,可以将它们的引用复制到其他变量,可以被扩展,此外,除少数特殊情况外,函数还可以被删除. 可以作为参数传递给其他函数,并且还可以有其他函数返回. 函数可以有自己的属性和方法. 2.函数提供了作用域 在JavaScript中,没有使用花括号{}语法来定义局部变量的作用域,也就是说,块并不能创建作用域.这也就意味着

JavaScript中的Document文档对象

Document文档对象是JavaScript中window和frames对象的一个属性,是显示于窗口或框架内的一个文档.描述当前窗口或指定窗口对象的文档.它包含了文档从到的内容. 用法:document (当前窗口) 或 <窗口对象>.document (指定窗口) 属性: document.title //设置文档标题等价于HTML的定义的文字.在 Netscape 里本属性不接受赋值. fgColor 指标记的 text 属性所表示的文本颜色. bgColor 指标记的 bgcolor