javascript自定义函数教程---百度文库
来源:互联网 发布:代理商系统源码 编辑:程序博客网 时间:2024/06/06 21:35
http://wenku.baidu.com/link?url=bN8bUecIUExRx-1CCGGzgv32MY6PvemfOJ2f1-JytpCcNAEFsMB55nT5KQ7FNOxXZWNqKNIj8EdlFlayR6xboFrBARnzZwk4koRHjKzr6na
其中6.2节中:
6.2、函数的apply、call方法和length属性
JavaScript为函数对象定义了两个方法:apply和call,它们的作用都是将函数绑定到另外一个对象上去运行,两者仅在定义参数的方式有所区别: Function.prototype.apply(thisArg,argArray);
Function.prototype.call(thisArg[,arg1[,arg2…]]);
从函数原型可以看到,第一个参数都被取名为thisArg,即所有函数内部的this指针都会被赋值为thisArg,这就实现了将函数作为另外一个对象的方法运行的目的。两个方法除了 thisArg参数,都是为Function对象传递的参数。
下面的代码说明了apply和call方法的工作方式:
//定义一个函数func1,具有属性p和方法 A
function func1(){ this.p="func1-"; this.A=function(arg) { alert(this.p+arg); } }
//定义一个函数func2,具有属性p和方法B
function func2(){ this.p="func2-"; this.B=function(arg) { alert(this.p+arg); } }
var obj1=new func1();
var obj2=new func2();
obj1.A("byA");
//显示func1-byAobj2.B("byB");
//显示func2-byBobj1.A.apply(obj2,["byA"]);
//显示func2-byA,其中[“byA”]是仅有一个元素的数组,下同obj2.B.apply(obj1,["byB"]);
//显示func1-byBobj1.A.call(obj2,"byA"); //显示func2-byAobj2.B.call(obj1,"byB");
//显示func1-byB
可以看出,obj1的方法A被绑定到obj2运行后,整个函数A的运行环境就转移到了obj2,即this指针指向了obj2。同样obj2的函数B也可以绑定到obj1对象去运行。代码的最后4行显示了apply和call函数参数形式的区别。本文发表于www.bianceng.cn(编程入门网) 与arguments的length属性不同,函数对象还有一个属性length,它表示函数定义时所指定参数的个数,而非调用时实际传递的参数个数。
例如下面的代码将显示2:
function sum(a,b) { return a+b; } alert(sum.length);
-------------------------------
为什么 这两个函数可以用“new”? 函数已经作为Function的一个实例对象了啊?不懂
var obj1=new func1();
var obj2=new func2();
- javascript自定义函数教程---百度文库
- javascript经典常用小例子
- Java开发MS Excel(转自百度文库)
- RMI、Hessian、Burlap、Httpinvoker、WebService的比较
- Eclipse中指定第三方包JAR和类路径CLASSPATH的几个方法
- 100句javascript一句话代码(简短常用代码集合,js开发必备的小程序集)
- 如何使用Asterisk-Java进行IP电话拨打
- Hibernate discriminator-value用法
- The value for the useBean class attribute is invalied
- 用jad工具反编译eclipse中jar文件中的class文件
- Hibernate merge、update与saveOrUpdate方法的区别
- Device-Mapper+Multipath
- 值类型转换中Convert与Parse的比较
- 黑马程序员---sscanf和sprintf的用法
- 用MyEclipse 打包JAR文件
- Android+push+notification方案比较
- TortoiseSVN及Eclipse的svn插件安装使用
- jFreeChart教程
- php 获取月份的天数
- 关联对象
- 代码风格
- OCP-1Z0-051 补充题库 第9题 to_char将数字转成字符的格式应用
- 一个人的悲伤不会两个人懂
- javascript自定义函数教程---百度文库
- this和super关键字的用法
- JS高级应用(一)
- 关于测试的几个问题
- 合理的关键字密度散布与黑帽SEO之躲藏文本
- 接口与抽象类的区别
- libvirt 介绍
- 内部类的作用
- 如何设置JPanel大小