JavaScript中的apply与call与arguments对象
(一) call方法
语法:presentObj.call(thisObj,arg1,arg2,arg3...)
参数thisObj :将被用作当前对象presentObj的对象。
当thisObj无参数时,this为Global对象。其作用就是改变对象的内部指针this指向的内容。
参数arg1,arg2,...将被传递方法参数序列,即presentObj函数的参数序列,
说明
1,call 方法可以用来代替另一个对象调用一个方法。//有点不好理解,之后补全以下
2,最常见用法,call方法可以将一个函数的对象上下文从初始的上下文改变为由thisObj指定的新对象。例子:
var func = new function () {this.a = "func"};
var myFunc = function (x) {
alert(this.a);
alert(x);
/* body... */
}
myFunc.call(func,"var");
var cat = "the cat";
function say() {
console.log(this);
/* body... */
}
say();//输出:window
say.call(cat);//输出:string -->cat
(二)apply方法
语法:apply(thisObj,[argArray])
定义:应用某一个对象的一个方法,用另一个对象替换当前对象。
说明
如果argArray不是一个有效的数组或者不是arguments对象,那么会导致一个TypeError。
(三)arguments对象//以后,理解后继续保全
arguments对象实际上是当前函数的一个内置属性。
arguments对象的长度是由实参个数而不是形参个数决定的。
形参是函数内部重新开辟内存空间存储的变量,但是其与arguments对象内存空间并不重叠。对于arguments和值都存在的情况下,两者值是同步的,但是,针对其中一个无值的情况下,对于此无值得情形值不会得以同步。
JavaScript中的apply与call与arguments对象的更多相关文章
- javascript中call,apply,bind的用法对比分析
这篇文章主要给大家对比分析了javascript中call,apply,bind三个函数的用法,非常的详细,这里推荐给小伙伴们. 关于call,apply,bind这三个函数的用法,是学习java ...
- JavaScript中的apply,call与this的纠缠
1.apply定义 apply:调用函数,并用指定对象替换函数的 this 值,同时用指定数组替换函数的参数. 语法:apply([thisObj[,argArray]]) thisObj 可选.要用 ...
- Javascript中的apply与call详解
JavaScript中有一个call和apply方法,其作用基本相同,但也有略微的区别. 一.方法定义 1.call 方法 语法:call([thisObj[,arg1[, arg2[, [,.arg ...
- JavaScript中的apply和call函数详解(转)
每个JavaScript函数都会有很多附属的(attached)方法,包括toString().call()以及apply().听起来,你是否会感到奇怪,一个函数可能会有属于它自己的方法,但是记住,J ...
- JavaScript中call,apply和prototype
[TOC] call()方法 语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 如果没有提供 thi ...
- JavaScript中的apply和call函数详解
本文是翻译Function.apply and Function.call in JavaScript,希望对大家有所帮助 转自“http://www.jb51.net/article/52416.h ...
- javascript中的apply,call,bind详解
apply.call 在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向. Jav ...
- 闲聊js中的apply、call和arguments
JavaScript提供了apply和call两种调用方式来确定函数中的this的指向,在现实编码中,我确实 很少接触到这两个方法.但很无奈,很多面试题都要考这两种方法,我又没怎么用到,所以我们先来 ...
- JavaScript中的apply()和call()
可以将call()和apply()看做是某个对象的方法,通过调用方法的形式来间接调用函数. call()和apply()的第一个实参是要调用函数的母对象,它是调用上下文,在函数体内通过this来获得对 ...
随机推荐
- HTML5随笔
1 首先介绍一下html5,以及为什么用html5, HTML5是HTML最新的修订版本,2014年10月由万维网联盟(W3C)完成标准制定. HTML5的设计目的是为了在移动设备上支持多媒体.HTM ...
- 学习和理解C#中的事件
注:本文系学习笔记. 上一篇文章记录了我对C#中委托的理解.委托实际上是一种类型.可以将一个或多个方法绑定到委托上面,调用委托时,一次执行委托上面绑定的方法.本文要讲述的事件实际上和委托有很深的“感情 ...
- RocketMQ入门(1)
转自:http://www.changeself.net/archives/rocketmq入门(1).html RocketMQ入门(1) RocketMQ是一款分布式.队列模型的消息中间件,具有以 ...
- git 快速入门(二)
一.引子 git代码托管的优秀工具之一, 其工作原理和svn截然不同.一旦拥有主干master分支权限, 只要在本地拉取主干分支, 可以随时随地切换分支. 它拥有众多优点,eg :支持在断网的情况下, ...
- .Net Core-TagHelpers-Environment
当我们新建一个.net core项目时,发现页面中有个奇怪的TagHelper元素,如下: <environment names="Development"> ...
- Android 百度地图API 定位 导航
看看这个利用百度地图定位并实现目的地导航的Demo. 首先看实现效果: 进 入后首先会得到当前位置,在地图上显示出来.在输入框中输入目的地后,就会在地 ...
- Hooks——钩子概览
(资料源于MSDN,本文仅对其进行翻译.批注.其链接为:http://msdn.microsoft.com/en-us/library/windows/desktop/ms644959%28v=vs. ...
- BZOJ 1022 SHOI2008 小约翰的游戏John 博弈论
题目大意:反Nim游戏,即取走最后一个的人输 首先状态1:假设全部的堆都是1,那么堆数为偶先手必胜,否则先手必败 然后状态2:假设有两个堆数量同样且不为1,那么后手拥有控场能力,即: 若先手拿走一堆, ...
- [Web] What Is JSONP?
JSONP—or JSON with padding—is a sneaky technique that web developers came up with to work around the ...
- java_Properties写入文件
package ming; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.F ...