美文网首页
函数的方法 call apply

函数的方法 call apply

作者: 虎三呀 | 来源:发表于2018-02-07 15:37 被阅读0次
<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript">
            function fun(a,b) {
                console.log("a = "+a);
                console.log("b = "+b);
                //alert(this);
            }
            
            var obj = {
                name: "obj",
                sayName:function(){
                    alert(this.name);
                }
            };

            /*
             * call()和apply()
             *  - 这两个方法都是函数对象的方法,需要通过函数对象来调用
             *  - 当对函数调用call()和apply()都会调用函数执行
             *  - 在调用call()和apply()可以将一个对象指定为第一个参数
             *      此时这个对象将会成为函数执行时的this
             *  - call()方法可以将实参在对象之后依次传递
             *  - apply()方法需要将实参封装到一个数组中统一传递
             * 
             *  - this的情况:
             *      1.以函数形式调用时,this永远都是window
             *      2.以方法的形式调用时,this是调用方法的对象
             *      3.以构造函数的形式调用时,this是新创建的那个对象
             *      4.使用call和apply调用时,this是指定的那个对象
             */
            
            //fun.call(obj,2,3);
            fun.apply(obj,[2,3]);

            

            var obj2 = {
                name: "obj2"
            };

            /*fun.apply();
            fun.call();
            fun();*/

            //fun.call(obj);
            //fun.apply(obj);

            //fun();
            
            //obj.sayName.apply(obj2);
        </script>
    </head>

    <body>
    </body>

</html>

相关文章

网友评论

      本文标题:函数的方法 call apply

      本文链接:https://www.haomeiwen.com/subject/hzfazxtx.html