Javascript基础——不常用但很有用的js函数
来源:互联网 发布:愉此一生网络剧播放 编辑:程序博客网 时间:2024/05/29 04:02
1.1. JavaScript函数
这部分对Extjs中常用的几个JavaScript参数和函数进行说明,它们是arguments、call、apply、caller、callee。这几个函数在普通的JavaScript编程中很少使用,但在Extjs的源码中却经常会碰到,所以先熟悉这几个函数对Extjs的学习有很大的帮助。
1.1.1. arguments
arguments是JavaScript函数的隐含对象,它代表正在执行的函数和调用该函数时传入的参数。arguments中存储的是调用该函数时实际传入的参数的值,而不是函数声明时所定义的参数。arguments对象只能在函数开始时才存在,不能显示地为某个函数创建该对象。
例子1:
function sayHello(name,age){
var argNum = arguments.length;//实际传入的参数个数
var defNum = sayHello.length;//函数定义的参数个数
alert('调用函数时传入'+argNum+'个参数,他们是:'+arguments[0]+','+arguments[1]);
}
sayHello('zhangsan',12);//输出“调用函数时传入2个参数,他们是:zhangsan,12”
从例子1中可以看出,如果要得到函数声明时定义的参数数量,可以使用函数的length属性(上例中的sayHello.length)即可。要得到实际传入的参数数量,则使用arguments.length即可。
1.1.2. call
1.1.3. apply
1.1.4. caller
caller对象是JavaScript函数的一个属性对象,它表示调用当前函数的函数。换句话说caller返回一个函数引用,该函数调用了当前正在执行的函数。用法如下:
functionName.caller
其中functionName是当前执行函数的函数名称。对于函数来说,caller属性只有在函数执行时才存在。如果函数是由顶层调用的,则caller为null,如果是由其它函数调用了该函数,则caller返回调用函数的反编译文本。
例子1:
function sayHello(){
if(sayHello.caller){
var ca = sayHello.caller.toString();
alert(ca);//输出调用函数test()的文本内容
}
}
function test(){
sayHello();
}
test();
例子1通过test函数调用sayHello函数,sayHello函数中的sayHello.caller返回调用函数test的反编译文本:
function test(){
sayHello();
}
1.1.5. callee
callee 属性是 arguments 对象的一个成员,它表示对函数对象本身的引用,这有利于匿名函数的递归或者保证函数的封装性。
[function.]arguments.callee
可选项 function 参数是当前正在执行的 Function 对象的名称。
例子1:
function sayHello(){
alert(arguments.callee);//输出函数sayHello的文本内容
alert(arguments.callee.length);//形参个数
alert(arguments.length);//实参个数
if(arguments.callee.length == arguments.length){
alert(‘形参个数与实参个数相等,可以进行计算’);
……
}
}
sayHello();
callee拥有length属性,这个属性有时候用于验证还是比较有用。arguments.length是实参长度,arguments.callee.length是形参长度,由此可以判断调用时形参长度是否和实参长度一致。
- Javascript基础——不常用但很有用的js函数
- 几个不常用但很有用的javascript方法
- 几个不常用但很有用的javascript方法
- 一个不常用, 但却很有用的函数 GetSystemMetrics()
- oracle 几个有用但不常用的函数
- 几个不太常用但很有用的HTML Tag
- 几个不太常用但很有用的HTML Tag
- 几个不太常用但很有用的HTML Tag
- 几个不常用,但很有用的html标签
- 几个不太常用但很有用的HTML Tag
- 几个不太常用但很有用的HTML Tag
- 几个不太常用但很有用的HTML Tag
- linux一些不常用但很有用的命令
- 不常用但很有用的网络测试命令
- 几个不太常用但很有用的HTML Tag
- 那些不常用但很有用的css代码
- Linux有用但不常用的命令
- Ruby中有用但不常用的String方法总结
- 混沌的思绪
- 如何在Linux下编译Windows版本的adb和fastboot
- .Net程序脱离.net framework框架的另一个方法
- access denied for user 'root'@'localhost'(using password: YES)问题解决办法.
- Javascript基础——详解prototype
- Javascript基础——不常用但很有用的js函数
- poj1230
- JQuery 选择器
- http://alumni.cs.ucr.edu/~piyush/CandCPP.htm
- 独家:为什么苹果的优秀设计很难复制?
- 函数调用约定详解:_stdcall,_cdecl,_fastcall
- STL算法学习
- C++精华(STL)学习笔记之算法
- SCPS