javascript中函数的call和apply方法

来源:互联网 发布:网络营销和网络推广 编辑:程序博客网 时间:2024/06/07 04:52
<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));//30alert(apply1(20,40));//60*///call、apply真正强大的地方能够扩充函数赖以运行的作用域。//扩充作用域window.color='red';//相当于全局变量 colorvar obj = {color:'blue'};//看见没,还可以这样创建对象。function showColor(){alert(this.color);}showColor.call(this);//red this指的就是window,在window下有一个colorshowColor.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>