js的隐式参数(参数,被调用函数调用)的使用

js的隐式参数(参数,被调用函数调用)的使用
在提到上述概念之前,首先,我们要讨论Javascript中函数的隐含参数

争论

参数该对象表示正在执行的函数和调用其函数的参数。
函数:选项。当前正在执行的函数对象的名称。
选项:从0传递给函数对象的参数值索引。它表明参数是一个隐藏对象,在函数调用时,除了指定的参数之外,还创建了一个隐藏对象。它与数组相似,因为它具有与数组相同的访问属性和方式。它可以通过参数{N}和数组的长度属性长度访问相应的单参数的值。另一件事是,争论的对象存储参数是传递给函数,不限于通过函数的声明定义的参数列表,并不能显式地创建参数对象。议论对象仅当功能启动

下面的示例详细说明了这些属性
复制代码代码如下所示:
参数对象的用法
功能argtest(A,B){
var i,S = argtest预期功能;
无功numargs = arguments.length; / /得到的值传递参数。
无功expargs = argtest.length; / /获得期望的数值参数。
如果(expargs<2)
S = expargs +论点;
其他的
S = expargs +论据;
如果(numargs<2)
S = numargs +了;
其他的
S = numargs +了;
=
为(i = 0;i < numargs;i++){ / /得到的参数内容。
s = +参数;
}
返回(s);返回参数列表。
}

这里添加了一个代码,该参数显示数组不是数组(数组类):
复制代码代码如下所示:
array.prototype.selfvalue = 1;
警报(新数组()。Selfvalue);
功能testaguments(){
警报(参数。自我价值);
}

运行代码,你会发现第一报警显示1,这表示数组对象都有一个自我价值属性的值是1,当你打电话给testaguments功能,你会发现,显示的是未定义的,产权不争论,辩论不是数组对象。
一个简单的方法,你在这里推荐:警惕(参数是数组);
警报(参数实例对象);

来电

返回调用当前函数的函数的引用。
functionname.caller
该函数名对象执行的函数名称。

解释
一个函数,调用定义属性只有当函数被执行。如果函数调用的顶层,然后调用包含空字符串。如果你在使用调用者上下文属性,结果是functionname.tostring相同,也就是说,这个函数的反编译文本显示。
注:Function.toString()可以实现函数的反函数。例如,递归的功能更强大。
下面的示例演示调用方属性的用法:
复制代码代码如下所示:
调用程序演示
功能callerdemo(){
如果(callerdemo。来电){
创建一个callerdemo.caller.tostring();
警报(a);
{人}
警报(这是一个top函数);
}
}
功能handlecaller(){
CallerDemo();
}

被叫

返回的函数对象被执行,即指定的函数对象的身体,{功能。} arguments.callee可选功能参数是执行当前函数的对象的名称。它表明callee属性的初始值是正在执行的函数对象被调用的属性。是争论的对象的一个成员。它指的是对函数对象本身的引用,这有助于匿名函数的递归函数或函数的封装。例如,递归计算的1个自然数N的例子是递归的。此属性仅当相关函数正在执行,也要注意,被调用方的长度属性重要,有时是用来验证或是better.arguments.length是一个参数的长度,和arguments.callee.length是参数的长度,从而判断参数的长度是符合参数的长度时,称为。

样品
复制代码代码如下所示:
/ /被叫方可以打印自己的
功能calleedemo(){
警报(参数。被叫方);
}
验证参数
功能calleelengthdemo(arg1,arg2){
如果(参数。长度= =争论。被叫。长度){
Window.alert(验证参数的参数和长度正确!;
返回;
{人}
警报(参数长度:+参数。长度);
警报(长度的参数:+论据。被叫。长度);
}
}
递归计算
var =函数(n){
如果(n 0)
返回1;
其他的
返回N + arguments.callee(n - 1)
}比较一般递归函数:var和(n){
如果(1 = n)返回1;
否则返回n和(n-1);
}

调用时调用:警报(和(100));
函数包含对和自身的引用。函数名仅为变量名。调用函数内的和等于调用全局变量。它没有反映电话本身,所以使用被叫方是一个很好的方法。

申请电话
它们的功能是将函数绑定到要运行的另一个对象,这两个对象只在定义参数的方式上有所不同:

申请(thisarg,argarray);
电话(thisarg {,arg1,arg2…} });

这是所有的功能在这个指针将被设置为thisarg,它能实现的功能为目的的另一个对象的应用表明,如果argarray不是有效的数组或者没有争论的对象,那么这将导致一个错误类型
如果对argarray和thisarg参数没有设置,那么全球目标将作为thisarg不能传递任何参数,调用方法调用的描述可以改变一个函数对象上下文从初始上下文的thisarg指定新的对象。
如果你不提供thisarg参数,全局对象作为thisarg相关技能:呼叫应用和一个技巧的应用,是利用电话,将另一个函数的应用(类),当前函数(类)的另一个函数(类)的方法或属性,这也就是为传承。

请看下面的例子:
复制代码代码如下所示:
演示/继承
函数基(){
this.member =dnnsun_member ;
这种途径对等=函数(){
Window.alert(的成员);
}
}
函数扩展(){
base.call(本);
Window.alert(成员);
Window.alert(这种方法);
}

上面的例子显示,在调用之后,扩展可以继承基的方法和属性。顺便说一下,在Javascript框架原型中,您使用应用程序创建定义类的模式,代码如下所示:
复制代码代码如下所示:
var类{ { {
创建:函数(){
返回函数(){
This.initialize.apply(这个参数);
}
}
}

解析:从代码中,对象只包含一个方法:创建,它返回一个函数,也就是类,但这也是一个类构造函数,它调用初始化,这是在创建类时定义的初始化函数,这样就可以在原型中实现类创建模式的示例:
复制代码代码如下所示:
VaR class.create(车辆);
车辆。原型= {
初始化:函数(类型){
类型=类型;
}
showself:函数(){
警报(该车辆+此类型。);
}
新的车辆;
Moto.showSelf();
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部