javascript的call()和apply()

  call([thisObj[,arg1[, arg2[,   [,.argN]]]]])

  其中thisObj可以省略,若省略则Global 对象被用作 thisObj

       其实质是更改函数内部的this指针,第一个参数极this指向的对象

       apply([thisObj[,argArray]])

       两者不同点:apply传入的是一个参数数组,而call则作为call的参数传入

       例子:

     <input type="text" id="myText"   value="input text">
           <script>
                
function Obj(){this.value="对象!";}
                
var value="global 变量";
                
function Fun1(){alert(this.value);}

                window.Fun1();   
//global 变量
                Fun1.call(window);  //global 变量
                Fun1.call(document.getElementById('myText'));  //input text
                Fun1.call(new Obj());   //对象!
         </script>

         <script>
              
var func=new function(){this.a="func"}
              
var myfunc=function(x){
             
var a="myfunc";
              alert(
this.a);
              alert(x);
              }
             myfunc.call(func,
"var");
         </script>

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值