`
hyshucom
  • 浏览: 808292 次
文章分类
社区版块
存档分类
最新评论

Javascript基础——不常用但很有用的js函数

 
阅读更多

1.1. JavaScript函数

这部分对Extjs中常用的几个JavaScript参数和函数进行说明,它们是arguments、call、applycaller、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语言精髓与编程实践》精选版--动态函数式语言精粹

    而这也是该书难读的根源——很少有人会以一门确切的语言来讨论多种语言范型。尤其在使用JavaScript的开发者群体里,深入了解该语言的本来就不多,研究语言特性的就更少了。 《JavaScript语言精髓与编程实践》精选版...

    常用javascript整理

    1.JavaScript的数值处理对象学习 .txt 2.JavaScript的系统函数学习 .txt 3.js中用于对象的语句——with和for...in语句学习专题.txt 4.smallSoftkey小软键盘,大键盘 5.window.open参数详解 .txt 6....

    WebGIS从基础到开发实践代码(基于ArcGIS API for JavaScript)

    第1章Web GIS基础 1.1GIS及相关技术的发展 1.1.1Web开发技术的发展 1.1.2GIS的发展 1.1.3Web服务的发展 1.1.4Web GIS的发展 1.2OGC的Web服务规范 1.2.1OWS服务体系 1.2.2空间信息Web服务的角色与功能 1.2.3空间信息...

    《JavaScript语言精髓与编程实践》精选版

    而这也是该书难读的根源——很少有人会以一门确切的语言来讨论多种语言范型。尤其在使用JavaScript的开发者群体里,深入了解该语言的本来就不多,研究语言特性的就更少了。 本迷你书摘引了《JavaScript语言精髓与...

    AppBaseJs 类库 网上常用的javascript函数及其他js类库写的

    代码如下:/*———————————– Web Application JavaScript Library 2009.11 janchie ————————————*/ //String原生对象扩展 置空左右端空格 String.prototype.trim = function(){ return this....

    JavaScript详解(第2版)

     13.7.4 将事件传递给JavaScript函数   13.7.5 鼠标坐标   13.7.6 按键事件   13.8 处理事件的脚本模型   13.9 应知应会   练习   第14章 CSS与JavaScript   14.1 什么是CSS   14.2 什么是...

    JavaScript常用的对象——Math对象详谈

    说到Javascript对象,能想到好多,比如创建数组使用的Array,比如创建函数使用的Function等等。今天我要说的是Math对象。 Math对象 首先Math对象是什么,Math对象的作用又是什么? Math对象属于JavaScript对象中的...

    Web GIS从基础到开发实践 基于ArcGIS API for JavaScript

    2.2.2ArcGIS API for JavaScript与Dojo的关系 2.3开发与调试工具 2.3.1集成开发环境 2.3.2调试工具 2.3.3Firebug 2.3.4其他工具软件 2.4Dojo基础知识 2.4.1JavaScript对象 2.4.2函数也是对象 2.4.3模拟类与继承 ...

    JS-Annotations:Javascript 的一般注意事项

    —— —— —— ——对象介绍参考空值&未定义JS 中的函数变量 Var 变量让Var&Let&Loop 吊装对象对函数名称/值对JS 中的点任务破坏基本操作试着抓 控制结构在本主题中,一般将讨论编程语言中最常用的控制结构。 ——...

    ExtJS4中文教程2 开发笔记 chm

    Edit Grid限制编辑 ExtJS 4 DirectStore post参数的变化以及应对方法 ...js函数match、exec、test、search、replace、split使用介绍 技巧:Javascript使用隐藏的new来创建对象 禁止页面全选复制,兼容多种浏览器

    php网络开发完全手册

    7.3.4 字符串单词数的计算函数—— 7.3.4 str_word_count 107 7.3.5 字符串查找操作——strstr 108 7.3.6 获得字符串的长度——strlen 108 7.3.7 获得字符串的子串——substr 109 7.4 正则表达式简介 109 7.5 正则...

    Node.js 开发指南.pdf

    3.2.2 回调函数 31 3.2.3 事件 33 3.3 模块和包 34 3.3.1 什么是模块 35 3.3.2 创建及加载模块 35 3.3.3 创建包 38 3.3.4 Node.js包管理器 41 3.4 调试 45 3.4.1 命令行调试 45 3.4.2 远程调试 ...

    ExtJS Web 应用程序开发指南(第2版)(完整版)

    主要内容:ExtJS4.0的...《ExtJS Web应用程序开发指南(第2版)》特色:阅读门槛低——不要求读者对ExtJS有所了解,只要熟悉、JavaScript编程,《ExtJS Web应用程序开发指南(第2版)》就能带你从头开始领略ExtJS的风采。

    精通JS脚本之ExtJS框架.part1.rar

    《精通JS脚本之ExtJS框架》由浅入深地讲解了ExtJS在Web开发中的相关技术。本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计...

    精通JS脚本之ExtJS框架.part2.rar

    《精通JS脚本之ExtJS框架》由浅入深地讲解了ExtJS在Web开发中的相关技术。本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计...

    Node.js+开发指南

    3.2.2 回调函数 31 3.2.3 事件 33 3.3 模块和包 34 3.3.1 什么是模块 35 3.3.2 创建及加载模块 35 3.3.3 创建包 38 3.3.4 Node.js包管理器 41 3.4 调试 45 3.4.1 命令行调试 45 3.4.2 ...

    PHP论文格式化系统——前台的设计与实现毕业设计毕业论文

    系统也提供学生和导师的论文交互平台,论文交互平台采用了php脚本编写了数据库操作类和常用函数类,然后用这些类创建新的对象来使用对象中的方法,比如数据库连接的方法,数据库查询方法,上传论文的方法等。...

    JavaScript中的typeof操作符用法实例

    “undefined”——如果这个值未定义“boolean”——如果这个值是布尔值“string”——如果这个值是字符串“number”——如果这个值是数值“object”——如果这个是对象或null“function”——如果这个值是函数 ...

    CC6开发应用教材基础篇

    第四节 扩展函数——自定义光标 144 第五节 常用全局函数介绍 147 一、 print与alert函数 147 二、 fullScreen函数 148 三、 thisNode函数 148 四、 setTimeout函数 150 五、 获得当前用户信息函数 151 第六节 ...

Global site tag (gtag.js) - Google Analytics