JavaScript Function arguments.callee caller length return
一、Function
函数是对象,函数名是指针。
函数名实际上是一个指向函数对象的指针。
使用不带圆括号的函数名是访问函数指针,并非调用函数。
函数的名字仅仅是一个包含指针的变量而已。即使在不同的环境中执行,全局的sayColor()函数 与 obj.sayColor() 指向的仍是同一个函数。
在函数内部,有两个特殊的对象,this 和 arguments 。
以下 总结自 《高程三 P110 》
每个函数都是Function类型的实例,函数都是对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定。
函数表达式:
var foo = function () { // 函数表达式, 以上代码定义了变量sum,并将其初始化一个函数 这和声明 数字、布尔值、字符串等其他变量是一样的
...
};
函数声明:
function foo() {
alert('foo');
}
函数声明、函数表达式 区别:
解析器(代码运行的环境)会率先读取函数声明,并使其在执行任何代码之前可以访问;至于函数表达式,必须等到解析器执行到它所在的代码行,才会真正被解释执行。
document.onmousemove 默认是指向一个空的处理函数,如果想要自定义该事件的处理函数,就给它覆盖一个自定义函数的指针,也就是JS函数名(即document.onmousemover=functionname),而不能使用document.onmousemover=functionname()。
二、arguments对象
The arguments object is an Array-like object(类数组,没有pop push方法) corresponding to the arguments passed to a function.
The arguments object is a local variable available(任何函数内部都有这个对象,是访问参数的入口) within all(non-arrow非箭头函数) functions. You can refer to a function's arguments within the function by using the arguments object. This object contains an entry for each argument passed to the function, the first entry's index starting at 0.
arguments是函数内部的类数组对象,包含着传入函数中的所有参数,代表传递给函数的参数列表。
arguments 对象仅在函数内部有效,在函数外部调用 arguments 对象会出现一个错误
arguments对象有下面两个属性和一个不再被支持的属性。
1. callee属性
(arguments对象,不是函数对象的属性)是一个指针,指向拥有这个arguments对象的函数。
callee放回正在执行的函数本身的引用,它是arguments的一个属性。
Reference to the currently executing function(指向当前正在运行的函数).
2. length属性
argument.length 指向传递给当前函数的参数数量(即实参的数量)
三、caller属性
caller(是函数对象的属性)返回一个函数的引用,这个函数调用了当前的函数。
Reference to the function that invoked(指向调用当前函数的函数) the currently executing function.
四、length
每个函数都包含两个属性:prototype和length.
length(length属性) 是函数对象的一个属性值,指明该函数期望多少个参数,意即形参的个数
(length 是函数对象的一个属性值,指明该函数期望多少个参数,意即形参的个数。数量不包括剩余参数。相比之下, arguments.length 是函数被调用时实际传参的个数。)
五、return
return语句也可以不带有任何返回值,在这种情况下,函数在停止执行后将返回undefined
return 不指定明确的值时,返回undefined
JavaScript Function arguments.callee caller length return的更多相关文章
- JavaScript中的arguments,callee,caller
在提到上述的概念之前,首先想说说javascript中函数的隐含参数: arguments: arguments 该对象代表正在执行的函数和调用它的函数的参数. [function.]argument ...
- 理解JavaScript中的arguments,callee,caller,apply
arguments 该对象代表正在执行的函数和调用它的函数的参数. [function.]arguments[n] 参数function :选项.当前正在执行的 Function 对象的名字. n : ...
- JavaScript中的內定物件與函式: arguments, callee, caller, this, apply(), call()
arguments, caller, callee, this都是用在函式(function)內的特殊內定物件.而apply()及call()則是用來呼叫函式的不同作法. arguments可用來取得 ...
- javascript 中的 arguments,callee.caller,apply,call 区别
记录一下: 1.arguments是一个对象, 是函数的一个特性,只有在函数内才具有这个特性,在函数外部不用使用. 举例: function test(){ alert(typeof argume ...
- js的隐含参数(arguments,callee,caller)使用方法
在提到上述的概念之前,首先想说说javascript中函数的隐含参数: arguments arguments 该对象代表正在执行的函数和调用它的函数的参数.[function.]arguments[ ...
- JQuery Pagenation 知识点整理——arguments,callee,caller,apply应用(20150517)(转)
arguments 该对象代表正在执行的函数和调用它的函数的参数. [function.]arguments[n]参数function :选项.当前正在执行的 Function 对象的名字. n :选 ...
- javascript 中arguments.callee 调用自身
一.Arguments该对象代表正在执行的函数和调用他的函数的参数.[function.]arguments[n]参数function :选项.当前正在执行的 Function 对象的名字.n :选项 ...
- 关于arguments.callee.caller.arguments[0]获得event的一些问题
先从一个简单的例子说起,一个简单的button控件如下: < input type ='button' name ='mybtn' id ='mybtn' onclick ='myFun ...
- js arguments.callee & caller的用法及区别
在函数内部,arguments.callee该属性是一个指针,指向拥有这个arguments对象的函数; 而函数对象的另一个属性:caller,这个属性保存着调用当前函数的函数的引用,如果是在全局作用 ...
随机推荐
- Linux Yum仓库介绍及服务端及客户端配置
YUM服务器 适合在于内网使用,因为很多包需要国外的网站下载应用包,这样网络很不稳定 下载慢,所有为何不尝试搭建 自己内部的YUM服务器呢 YUM服务器搭建 一 创建yum仓库目录 #mkdir -p ...
- lucene 自定义评分
摘自:http://blog.csdn.net/seven_zhao/article/details/42708953 1.基于FunctionQuery,(1)创建类并继承ValueSource:( ...
- php 编程效率(2)
1.尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍. 当然了,这个测试方法需要在十万级以上次执行,效果才明显. 其实静态方法和非静态方法的 ...
- 转: Executor类
Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,Completion ...
- Java 笔试面试 基础篇 一
1. Java 基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法, 线程的语法,集合的语法,io 的语法,虚拟机方面的语法. 1.一个".java& ...
- angularjs表单中enter键提交
html页面: <form class="smart-form" id="checkout-form" searchinput> <div c ...
- 浏览器 CSS 兼容写法的测试总结
做前端最讨厌的就是 IE6,7,8,虽然被淘汰的浏览器,但是在中国用户仍然很多,不可能像国外网站一样直接就不管它了,这样会流失很多流量啊. 现在有了IE9,IE10还好些,几乎和 Chrome,Fir ...
- 解决Fileupload 在IE 10 中需要双击的问题
方法来自于:https://code.google.com/p/primefaces/issues/detail?id=5355 the oncomplete event is working for ...
- jdbc连接数据库的步骤
1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String classN ...
- 4、js内置函数
前言:上一篇我介绍了函数的基本概念,和一些简单的Demo.其实很多函数是js内置的,我们无需自己去写,直接拿过来用即可.内置函数分为全局函数和js内置对象的函数区别:全局函数不属于任何一个内置对象.理 ...