首页 > 移动平台 > 详细

JS中的call和apply

时间:2014-01-28 19:44:54      阅读:361      评论:0      收藏:0      [点我收藏+]

在看JS的一些框架的时候会经常遇到这两个函数,我个人认为这两个函数的出现就是因为JS中的奇怪的this,在JS中,this始终指向的是其执行上下文,而不像C#,Java之中的this那么专一,关于更多的内容可以见前面的博文。

call的作用和apply的作用是一样的,只是使用的时候所需要的参数类型不一样,前者是一个参数序列,后者是一个数组,仅此而已。

call和apply是函数上定义的一个方法,做用用于在执行的时候,改变上下文,也就是this对象,下面的测试代码可以自己去执行下,在chrome中可以跟踪这this的变化。

 

bubuko.com,布布扣
             function add(x, y) {
                return x + y;
            }

           alert(add(4, 5));

            var t = {};
            alert(add.call(t, 4, 5));
         
            var c = add.apply(t,[4,5]);
            alert(c);
bubuko.com,布布扣
bubuko.com,布布扣
  var a = { "x": 1, "y": 2 };
            function add(x, y) {
                return x + y;
            }

            function add1(x, y) {
                return this.x + this.y;
            }
            alert(add(4, 5));

            var t = {};
            alert(add.call(t, 4, 5));
         
            var c = add1.apply(a,[4,5]);
            alert(c);
bubuko.com,布布扣

JS中的call和apply

原文:http://www.cnblogs.com/zuiyirenjian/p/3535535.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!