码迷,mamicode.com
首页 > 移动开发 > 详细

call和apply

时间:2019-12-29 18:48:32      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:对象   san   情况   obj   white   name   window   hit   调用   

指定this的两个方法call和apply
call和apply都是函数的对象方法需要通过函数对象来调用
当对函数调用call和apply都会调用函数执行
在调用call和apply都可以将一个对象指定为第一个对象
以函数形式调用this就是window但是以上两种方法可以指定为第一个参数作为函数中的this来调用
 var obj = {name:"孙悟空",
 sayname:function () {
 alert(this.name);
 }
 var obj2 = {name:"猪八戒"} 
 obj.sayname.apply(obj2)
技术图片
 
call()方法可以将实参在对象之后依次传递
apply()方法需要将实参封装到一个数组之中统一传递
    function fun(a,b) {
        console.log("a="+a);
        console.log("b="+b);
    }


    var obj = {name:"孙悟空",
    sayname:function(){
        alert(this.name);
    }
}
    fun.call(obj,2,3);
    fun.apply(obj,[2,3])

技术图片

this的几种情况
1.以函数形式去调用时this永远都是window
2.以方法的形式调用时this就是调用方法的对象
3.以构造函数的形式调用时this就是新创建的那个对象
4.使用call和apply调用时this就是指定的那个对象

call和apply

标签:对象   san   情况   obj   white   name   window   hit   调用   

原文地址:https://www.cnblogs.com/niuyaomin/p/12115576.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!