JS中的call和apply

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

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

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

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

 

             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);
  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);

 

相关文章
|
2月前
|
JavaScript 前端开发
javascript中的call和apply
javascript中的call和apply
|
14天前
|
前端开发 JavaScript
【Web 前端】 js中call、apply、bind有什么区别?
【4月更文挑战第22天】【Web 前端】 js中call、apply、bind有什么区别?
【Web 前端】 js中call、apply、bind有什么区别?
|
15天前
|
JavaScript 前端开发
关于javascript中call(),apply(),bind()的介绍,初步
关于javascript中call(),apply(),bind()的介绍,初步
|
1月前
|
JavaScript
call、apply、bind的使用场景区分(js的问题)
call、apply、bind的使用场景区分(js的问题)
|
1月前
|
JavaScript 前端开发
JavaScript中call()与apply()的作用与区别?
JavaScript中call()与apply()的作用与区别?
25 2
|
2月前
|
JavaScript
JS中call()、apply()、bind()改变this指向的原理
JS中call()、apply()、bind()改变this指向的原理
|
4月前
|
JavaScript 前端开发 API
掌握apply和call,解密JavaScript的this指向
掌握apply和call,解密JavaScript的this指向
|
4月前
|
前端开发 JavaScript Java
【面试题】JavaScript 中 call()、apply()、bind() 的用法
【面试题】JavaScript 中 call()、apply()、bind() 的用法
|
4月前
|
前端开发 JavaScript
【面试题】 JavaScript 中 call()、apply()、bind() 的用法
【面试题】 JavaScript 中 call()、apply()、bind() 的用法
|
5月前
|
JavaScript 前端开发
JavaScript中call()与apply()的作用与区别?
JavaScript中call()与apply()的作用与区别?