- 浏览: 595701 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
ECMAScript规范给所有函数都定义了call()与apply()两个方法,call与apply的第一个参数都是需要调用的函数对象,在函数体内这个参数就是this的值,剩余的参数是需要传递给函数的值,call与apply的不同就是call传的值可以是任意的,而apply传的剩余值必须为数组。
call 方法
调用一个对象的一个方法,以另一个对象替换当前对象。
call([thisObj[,arg1[, arg2[, [,.argN]]]]])
参数
thisObj
可选项。将被用作当前对象的对象。
arg1, arg2, , argN
可选项。将被传递方法参数序列。
说明
call 方法可以用来代替另一个对象调用一个方法。
call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
说明白一点其实就是更改对象的内部指针,即改变对象的this指向的内容。这在面向对象的js编程过程中有时是很有用的。
例子:
对于apply和call两者在作用上是相同的,但两者在参数上有区别的。
对于第一个参数意义都一样,但对第二个参数:
apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,而call则作为call的参数传入(从第二个参数开始)。
如 func.call(func1,var1,var2,var3)对应的apply写法为:func.apply(func1,[var1,var2,var3])
同时使用apply的好处是可以直接将当前函数的arguments对象作为apply的第二个参数传入
同时call和apply可以用作类的继承作用
注:必须在子类里面进行调用父类.call(this)函数
call 方法
调用一个对象的一个方法,以另一个对象替换当前对象。
call([thisObj[,arg1[, arg2[, [,.argN]]]]])
参数
thisObj
可选项。将被用作当前对象的对象。
arg1, arg2, , argN
可选项。将被传递方法参数序列。
说明
call 方法可以用来代替另一个对象调用一个方法。
call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
说明白一点其实就是更改对象的内部指针,即改变对象的this指向的内容。这在面向对象的js编程过程中有时是很有用的。
例子:
function fun1() { this.a = 123; this.add = function () { return this.a } } function fun2() { this.a = 456; } var f1=new fun1() var f2=new fun2() // f1的add函数在f2的作用域里面进行执行 所以a的值是f2的 var a = f1.add.call(f2); // a输出的是456 function Obj(){this.value="对象!";} var value="global 变量"; function xxFun(){alert(this.value);} window.xxFun(); //global 变量 xxFun.call(window); //global 变量 xxFun.call(document.getElementById('myText')); //input text xxFun.call(new Obj()); //对象!
对于apply和call两者在作用上是相同的,但两者在参数上有区别的。
对于第一个参数意义都一样,但对第二个参数:
apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,而call则作为call的参数传入(从第二个参数开始)。
如 func.call(func1,var1,var2,var3)对应的apply写法为:func.apply(func1,[var1,var2,var3])
同时使用apply的好处是可以直接将当前函数的arguments对象作为apply的第二个参数传入
同时call和apply可以用作类的继承作用
注:必须在子类里面进行调用父类.call(this)函数
//父类 function superObj() { this.member = " dnnsun_Member"; this.method = function() { window.alert(this.member); } } //子类 function subObj() { //base.call(this); 同样是可以 实现继承 superObj.apply(this); //如果自己有属性 则调用自己的属性 this.member = '1234' ; alert(member); // 调用父类方法 this.method(); }
发表评论
文章已被作者锁定,不允许评论。
-
Vue 组件相关知识学习
2018-04-13 15:27 386Vue.js 组件 // 组件(Component)是 ... -
Vue 实例属性($option $el等)
2018-04-12 09:14 3236属性: vm.$el:获取Vue实例关联的DOM元素 vm ... -
Vue methods中方法之间的调用
2018-04-12 09:04 1730delAllOrderList:function(good ... -
Vue 计算属性(computed)学习
2018-04-11 15:55 9561.基础例子: <div id = "exam ... -
Vue 过滤器(|)学习
2018-04-11 14:30 734一、Vue提供的过滤器 vue本身提供了很多便利的过滤器,这里 ... -
Vue 所有指令(v-on:click = @click v-blind:class = :class)的学习
2018-04-11 09:38 1392先说一下指令里面的值都是表达式 new Vue({ ... -
js 动态Post请求防止在输入栏中显示参数
2018-01-08 10:21 626动态进行Post请求 var f=document.cre ... -
js autocomplete实现下拉模糊查询
2018-01-04 10:48 11081.js编写 // 获得焦点是重新进行查询 $(&quo ... -
js 遍历并且赋值
2017-12-19 13:46 633$("#productInfo").f ... -
js 鼠标移过去渐变的效果(页面固定 定位栏)
2017-10-31 11:29 6261.html代码 <div id="loc ... -
js 判断图片是否存在
2017-10-27 08:56 874当图片不存在时,将触发onerror,onerror 中img ... -
js 在页面中跳转到指定位置
2017-10-24 15:29 13411.页面中代码 <div style="lef ... -
Javascript 总结汇总
2016-11-04 15:06 345var timeoutid = window.setTimeo ... -
js easyui tree判断是否父节点
2016-09-08 10:17 803function isIncludeParentNode( ... -
CSS 点击div的同时显示或隐藏的div
2016-08-16 17:18 617<div id="up"> ... -
js 通过调用方法终止js代码继续执行的问题(采用throw解决)
2016-07-12 14:15 486一个方法如何终止另一个方法执行的问题 function ... -
js lightbox展示图片的案例
2016-06-13 09:35 679如何使用 1、Lightbox v2.0 使用 Protot ... -
js 静态方法与实例方法
2016-05-31 14:26 1542静态方法是指不需要声明类的实例就可以使用的方法 实例方法是 ... -
js 动态显示时间(setTimeout)
2016-05-23 15:20 661// 全局变量 var timeoutId ; //开 ... -
jQuery toggle trigger方法使用
2016-05-17 14:44 1098toggle 定义 toggle() 方法用于绑定两个或多个 ...
相关推荐
JavaScript中call与apply方法
它为开发者提供了丰富的工具和方法来操控函数和对象。在JavaScript中,`call`和`apply`是两个非常重要的方法,它们都用于改变函数调用时的上下文(即`this`的值),并且可以灵活地传递参数。本篇文章将深入探讨这两...
淡淡简单描述javascript中方法apply和call
JS中的call、apply、bind方法详解 随着JavaScript的发展,函数调用对象的改变变得越来越重要。在JavaScript中,call、apply、bind三个方法都是函数对象的方法,它们的作用都是改变函数的调用对象。下面,我们将详细...
1、call,apply都属于Function.prototype的一个方法,它是JavaScript引擎内在实现的,因为属于Function.prototype,所以每个Function对象实例(就是每个方法)都有call,apply属性。既然作为方法的属性,那它们的使用...
本文实例分析了JavaScript中call和apply方法的区别。分享给大家供大家参考,具体如下: 这两个方法不经常用,但是在某些特殊场合中是非常有用的,下面主要说下它们的区别: 1、首先,JavaScript是一门面向对象的语言...
在JavaScript中,`call`和`apply`是两种非常重要的函数调用方式,它们都用于改变函数内部`this`的指向,实现函数的...在实际开发中,理解和熟练掌握`call`和`apply`方法对于编写高效、灵活的JavaScript代码至关重要。
在面向对象编程中,继承是一种非常重要的机制,它允许子类继承父类的属性和方法,从而提高代码重用率。 例如: function Animal(name) { this.name = name; } Animal.prototype.eat = function() { console.log...
### 理解JavaScript中的`caller`...综上所述,理解`caller`、`callee`、`call`、`apply`以及`arguments`对象在JavaScript编程中至关重要,它们不仅增强了函数的灵活性和复用性,还提供了深入分析和调试代码的强大工具。
本文针对JavaScript中三个重要的函数方法——call、apply和bind,进行详尽的分析,并在文章的结尾部分对这三个方法之间的联系和区别进行了概括,以便于读者更深入地理解它们的用途和应用场景。 首先,我们来探讨...
4. 多重继承:在JavaScript中,一个对象可以继承多个父对象的属性和方法,通过在父对象的构造函数中分别使用call或apply,可以实现多重继承。 例如,在创建子类时,如果父类构造函数需要接收参数,那么可以使用...
`call` 和 `apply` 在JavaScript中扮演着至关重要的角色,它们提供了改变`this`上下文的能力,使得我们可以灵活地调用函数,尤其是在处理继承和对象方法时。理解并熟练掌握这两种方法的用法,对于提升JavaScript编程...
javascript callApply代码示例
在JavaScript中,`call`和`apply`是两种非常重要的函数调用方式,它们都用于改变函数执行时的上下文,即`this`的指向。`this`在JavaScript中是一个非常关键的概念,它通常指代函数执行时所在的对象。下面我们将深入...
JavaScript 中的 call、apply、bind 方法详解 JavaScript 中的 call、apply、bind 方法是 Function 对象自带的三个方法,这三个方法的主要作用是转变函数中的 this 指向,从而可以达到“接花移木”的效果。下面将对...
JavaScript中的`call`和`apply`是两种非常关键的方法,它们允许我们改变函数内部`this`的指向,同时也为实现模拟继承提供了可能。虽然JavaScript不直接支持类继承,但通过`call`和`apply`,我们可以实现类似的效果。...
这篇文章将深入探讨四个关键概念:caller、callee、call和apply,它们都是JavaScript函数操作的核心部分,对于理解和使用高级JavaScript编程至关重要。 首先,我们来了解`caller`和`callee`。在JavaScript的函数...
在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,一般来说,this总是指向调用某个方法的对象,但是使用call()和apply()方法时,就会改变this的指向 语法: apply() 接收两...
在构造函数中使用apply来继承另一个对象的属性和方法。 ```javascript var A = function(name) { this.name = name; }; var B = function() { A.apply(this, arguments); }; B.prototype.getName = ...