您的位置:首页 > 移动开发

全面理解 javascript 的 argements caller callee call apply 之apply,call

2009-09-17 13:27 579 查看
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">   
<html>   
<head>   
<mce:script language="JavaScript"><!--
    
    /**   
     * 演示apply,call函数的用法   
     * 说明:作用都是将函数绑定到另外一个对象上去运行,两者仅在定义参数方式有所区别:   
     * apply(thisArg,argArray);  
     * call(thisArg[,arg1,arg2…] ]);  
     * 即所有函数内部的this指针都会被赋值为thisArg   
     */    
        
     function ObjectA(){    
        alert("执行ObjectA()");   
        alert(arguments[0]);   
        this.hit=function(msg){alert(msg)}    
        this.info="我来自ObjectA"    
     }    
        
     function ObjectB(){    
        alert("执行ObjectB()");   
        //调用ObjectA()方法,同时ObjectA构造函数中的所有this就会被ObjectB中的this替代    
        ObjectA.apply(this,arguments);//ObjectA.call(this);   
        alert(this.info);   
        this.hit("来自A的hit函数");   
    }    
       
    /**   
     *当ObjectB()函数中第三行为这样时:   
     *ObjectA.apply(this,arguments);  
     *下面的调用,依次打印:   
     * "执行ObjectB()"   
     * "执行ObjectA()"   
     * "参数0"   
     * "我来自ObjectA"   
     * "来自A的hit函数"   
     *-----------------------------------   
     *当ObjectB()函数中第三行为这样时:   
     *ObjectA.call(this);  
     *下面的调用,依次打印:   
     * "执行ObjectB()"   
     * "执行ObjectA()"   
     * "undefined"   
     * "我来自ObjectA"   
     * "来自A的hit函数"   
     */    
     ObjectB('参数0');
// --></mce:script>   
</head>   
<body>   
</body>   
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: