实例学习call、apply、callee用法
作者:mike 来源:163 UED Team 发布时间:2009-03-27 17:56:00
可能不少学习javascript在使用call,apply,callee时会感到困惑,以下希望对于你有所帮助:
1、它是函数的方法或属性;
2、它可以改变执行上下文的this指向;
3、作为另一个对象调用一个方法(即可以把一个对象的方法作为另一个对象的方法来引用);
4、apply方法类似,但只能接收数组为参数;
5、callee函数的调用者。
f.call(o,1,2) 等同于
o.m = f;
o.m(1,2);
例1:
function o1(value){
if(value < 100){
this.value = value;
}else{
this.value = 100;
}
}
function o2(value){
o1.call(this,value);
alert(this.value);
}
var o = new o2(133554) //100 改变了this的指向
例2:
function c1(){
this.m1 = function(){
alert(this.name);
}
}
function c2(){
this.name = “mike”;
}
var nc1 = new c1();
var nc2 = new c2(); //必须
nc1.m1.call(nc2); //mike 把方法m1作为对象nc2的方法来引用
例3:
if (arguments[1] < 100) {
this.value = }
else {
this.value = 100;
}
}
function o2(arg){
o1.apply(this, arg);
alert(this.value);
}
var o = new o2([101,60]) //60 参数只能是数组
callee用法,常用于匿名函数中
var factorial = function(x){
if(x <= 1){
return 1;
}
return x * arguments.callee(x - 1);
}
alert(factorial(5)); //120
猜你喜欢
- 起源:.clearfix:after {visibility: hidden;display: block;font-size: 0;con
- 任意给出一个数,求该数以内的所有质数.(使用筛选法做的)先看看什么叫做质数?质数的定义:一个大于1的自然数,除了1与它自身外,再没有其它的正
- 1、为图片加入水印功能 Dim Jpeg Set Jpeg = Server.Create
- 今天做项目时,有一个这样的需求,需要动态删除的Tab,比如:可以删除某一个,可以删除多个。每一个Tab对应一个iframe。本来我的代码是这
- 进入sqlplus SQL> set timing on SQL> SQL> select count(*) from c
- 求英文字母、数字、下划线、汉字的js正则表达式英文字母或数字或下划线,英文字母数字下划线是:/^\w+$/汉字的是:/^[\u0391-\u
- 内容摘要:Cookies的值比ASP其他集合(例如Form和ServerVariables)的值要复杂得多。Cookie是一小块由浏览器存贮
- 随着CSS3越来越热,CSS3动画也逐渐受到大家的关注。这次有幸修改淘宝网全站页头,小小地应用了下(详见http://www.taobao.
- 调用 <script language="javascript" src="xxx.asp?m
- 我们都知道在9i之前,要想获得建表和索引的语句是一件很麻烦的事。我们通常的做法都是通过export with rows=no来得到,但它的输
- bcp是SQL Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据
- 上次用Javascript+ASP实现了无刷新的新闻列表,最后还有一个小问题没有解决:下边的分页数列"首页、上10页、下10页、尾
- 如何随机显示图片计数器?一切就绪,看看我们的代码:count.asp< html >< head >
- 1、800*600下,网页宽度保持在778以内,就不会出现水平滚动条,高度则视版面和内容决定。2、1024*768下,网页宽度保持在1002
- 尽管 JavaScript 历史上使用冗长而令人生厌的代码块来标的特定浏览器的时期已经结束了,但是偶尔使用一些简单的代码块和对象检测来确保一
- 随着网络技术的不断发展,网络应用已经渗透到人类社会的各个角落。作为网络世界的支撑点的网站,更是人们关注的热点:政府利用网站宣传自己的施政纲领
- 移动互联网被称为“第五次科技革命”,而随着iPhone和Android等智能手机的日渐流行和iPad等平板电脑的出现,移动互联网的潜力和趋势
- 简单asp加载access数据库,并生成XML,然后再将XML数据加载进LIST组件范例学习。演示:http://www.taoshaw.c
- 近日,有朋友一直打听flash连结服务器相关的知识,搞得我忧心重重,重点是自己也忘记了,大部分Flash的相关开发都是两年前的事,而且fla
- 自己写的一个自动完成效果,暂时没有ajax数据源,用静态数据代替。仅供喜欢JavaScript的同学们参考,代码如下<!DOCTYPE