国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

JS教程:call、apply、callee用法

2024-09-06 12:40:56
字體:
來源:轉載
供稿:網友

可能不少學習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:
function o1(arg){
if (arguments[1] < 100) {
this.value =
arguments[1] ;
}
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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 金寨县| 赤城县| 乐陵市| 平罗县| 天津市| 昌吉市| 惠来县| 河曲县| 班玛县| 淅川县| 廊坊市| 香港| 兰州市| 云林县| 兰坪| 精河县| 禹州市| 沂源县| 南华县| 竹山县| 鄂州市| 灵石县| 黄大仙区| 房产| 稻城县| 嘉兴市| 桑植县| 武邑县| 平泉县| 维西| 天水市| 济阳县| 宁南县| 松滋市| 五大连池市| 平度市| 宾阳县| 年辖:市辖区| 盐边县| 乌苏市| 湟中县|