<html>
<head>
<title>012</title>
<script type="text/javascript" charset="utf-8">
//每一个函数都包含两个非继承而来的方法:call apply
//call、apply方法 简单的用法:绑定一些函数 用于传递参数 调用
//他俩最简单的用途,绑定到一个作用域中。但这没有什么实际意义,并不是主要用途。
/*
function sum(x,y){
return x+y;
}
/*
function call1(num1,num2){
return sum(num1,num2);
}
alert(call1(10,20));//30
*/
/*
function call2(num1,num2){
return sum.call(this,num1,num2);//this表示将一个函数绑定到当前函数上。
}
function apply1(num1,num2){
return sum.apply(this,[num1,num2]);//apply方法后面是一个数组,跟call方法不相同
}
alert(call2(10,20));//30
alert(apply1(20,40));//60
*/
//call、apply真正强大的地方能够扩充函数赖以运行的作用域。
//扩充作用域
window.color='red';//相当于全局变量 color
var obj = {color:'blue'};//看见没,还可以这样创建对象。
function showColor(){
alert(this.color);
}
showColor.call(this);//red this指的就是window,在window下有一个color
showColor.call(obj);//blue 第二次传的是对象,就是该对象下面的color
//使用call/apply方法,对象和方法不需要有任何关系
//call方法简单模拟与实现
//function方法
function test1(a,b){
return a+b;
}
//自定义的对象
function Obj(x,y){
return x*y;
}
var o = new Obj(10,20);
o.method=test1;
alert(o.method(10,20));
delete o.method;
//alert(typeof o.method);
//test1.call(o,o.x,o.y);
</script>
</head>
<body>
</body>
</html>
javascript中函数的call和apply方法
最新推荐文章于 2025-08-11 23:19:59 发布