javascript中call和apply的区别

简介:

我理解javascript中call和apply的区别仅在于语法不同。

下例中分别调用call和apply对myObj进行修改,语法不同,但使用效果是一样的:

 
  1. var myObj = {  
  2.     "a":1,  
  3.     "b":2,  
  4.     "c":3  
  5. }  
  6. var myFunc = function(a,b,c){  
  7.     this.a=a;  
  8.     this.b=b;  
  9.     this.c=c;  
  10. }  
  11. myFunc.call(myObj,4,5,6);//参数个数无限制  
  12. iJs.showObject("myObj");  
  13. myFunc.apply(myObj,[7,8,9]);//第二个参数是数组  
  14. iJs.showObject("myObj"); 
调试信息: 
    
     [Object] myObj
         |--[number] a ------------- 4
         |--[number] b ------------- 5
         |--[number] c ------------- 6
    
     [Object] myObj
         |--[number] a ------------- 7
         |--[number] b ------------- 8
         |--[number] c ------------- 9


 本文转自 hexiaini235 51CTO博客,原文链接:http://blog.51cto.com/idata/1107836,如需转载请自行联系原作者

相关文章
|
19天前
|
JavaScript 前端开发 索引
问js的forEach和map的区别
JavaScript中的`forEach`和`map`都是数组迭代方法。`forEach`遍历数组但不修改原数组,无返回值;它接受回调函数处理元素。`map`则遍历数组并返回新数组,新数组元素为回调函数处理后的结果。两者都接收元素、索引和数组作为回调函数参数。
19 7
|
22天前
|
JavaScript 前端开发
JS require 与 import 的区别
JS require 与 import 的区别
15 1
|
30天前
|
JavaScript
js开发:请解释什么是ES6的类(class),并说明它与传统构造函数的区别。
ES6的类提供了一种更简洁的面向对象编程方式,对比传统的构造函数,具有更好的可读性和可维护性。类使用`class`定义,`constructor`定义构造方法,`extends`实现继承,并可直接定义静态方法。示例展示了如何创建`Person`类、`Student`子类以及它们的方法调用。
21 2
|
1月前
|
自然语言处理 JavaScript 网络架构
js开发:请解释什么是ES6的箭头函数,以及它与传统函数的区别。
ES6的箭头函数以`=>`定义,简化了函数写法,具有简洁语法和词法作用域的`this`。它无`arguments`对象,不能用作构造函数,不支持`Generator`,且不改变`this`、`super`、`new.target`绑定。适用于简短表达式,常用于异步编程和高阶函数。
17 5
|
5天前
|
算法
Swiper库和Glide.js库的性能有何区别
Swiper和Glide.js是两个流行的响应式轮播图库。Swiper功能强大且灵活,支持多方向滑动,拥有丰富的配置和切换效果,适合复杂需求,其高性能得益于优化的算法和惰性加载。Glide.js则轻量级、快速,专注于基础功能,适合简洁需求。两者各有侧重,选择应基于项目具体需求和性能考虑。
|
9天前
|
存储 JavaScript 前端开发
JavaScript DOM 操作:解释一下 cookie、sessionStorage 和 localStorage 的区别。
Cookie是服务器发送至客户端的文本信息,会随每个请求发送回服务器,适合控制会话状态但可能暴露隐私。SessionStorage仅在当前会话中存储数据,关闭浏览器后清除,适合临时存储如登录状态。LocalStorage则持久保存数据,即使关闭浏览器也不会清除,适用于存储长期设置。三种方式各有侧重,应按需求选择。
13 0
|
12天前
|
JavaScript 前端开发
JQuery和JS的区别有哪些?
JQuery和JS的区别有哪些?
12 0
|
12天前
|
JavaScript 前端开发
js中浅拷贝和深拷贝的区别
js中浅拷贝和深拷贝的区别
18 1
|
15天前
|
JavaScript 前端开发 算法
JavaScript 中前置自增与后置自增:区别、应用场景
【4月更文挑战第6天】JavaScript中的前置自增`++a`先增后用,返回新值,适合复合赋值和循环计数;后置自增`a++`先用后增,返回原值,适用于保留变量原值的操作。二者差异在于运算时机和返回值,选择时要考虑递增时机和表达式中使用的值。在复杂表达式中应避免混用,注重代码清晰度和一致性。理解这些差异能提高代码效率,避免逻辑错误。
17 1
|
22天前
|
JavaScript 前端开发
JavaScript中call()与apply()的作用与区别?
JavaScript中call()与apply()的作用与区别?
21 2