(一) 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对象的更多相关文章

  1. javascript中call,apply,bind的用法对比分析

    这篇文章主要给大家对比分析了javascript中call,apply,bind三个函数的用法,非常的详细,这里推荐给小伙伴们.   关于call,apply,bind这三个函数的用法,是学习java ...

  2. JavaScript中的apply,call与this的纠缠

    1.apply定义 apply:调用函数,并用指定对象替换函数的 this 值,同时用指定数组替换函数的参数. 语法:apply([thisObj[,argArray]]) thisObj 可选.要用 ...

  3. Javascript中的apply与call详解

    JavaScript中有一个call和apply方法,其作用基本相同,但也有略微的区别. 一.方法定义 1.call 方法 语法:call([thisObj[,arg1[, arg2[, [,.arg ...

  4. JavaScript中的apply和call函数详解(转)

    每个JavaScript函数都会有很多附属的(attached)方法,包括toString().call()以及apply().听起来,你是否会感到奇怪,一个函数可能会有属于它自己的方法,但是记住,J ...

  5. JavaScript中call,apply和prototype

    [TOC] call()方法 语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 如果没有提供 thi ...

  6. JavaScript中的apply和call函数详解

    本文是翻译Function.apply and Function.call in JavaScript,希望对大家有所帮助 转自“http://www.jb51.net/article/52416.h ...

  7. javascript中的apply,call,bind详解

    apply.call 在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向. Jav ...

  8. 闲聊js中的apply、call和arguments

    JavaScript提供了apply和call两种调用方式来确定函数中的this的指向,在现实编码中,我确实 很少接触到这两个方法.但很无奈,很多面试题都要考这两种方法,我又没怎么用到,所以我们先来 ...

  9. JavaScript中的apply()和call()

    可以将call()和apply()看做是某个对象的方法,通过调用方法的形式来间接调用函数. call()和apply()的第一个实参是要调用函数的母对象,它是调用上下文,在函数体内通过this来获得对 ...

随机推荐

  1. redis优化优秀文选

    Redis是一个单线程的内存数据库.下载地址如下:http://download.redis.io/releases/redis-2.8.11.tar.gz在Redis的src目录运行make命令,然 ...

  2. jquery 延迟加载代码

    <!--引入以下两个js文件--> <script type="text/javascript" src="./js/jquery.min.js&quo ...

  3. Microsoft PetShop 集锦

    一.pet shop 2.0 项目概述与架构分析微软刚推出了基于ASP.NET 2.0下的Pet Shop 4, 该版本有了一个全新的用户界面.是研究ASP.NET 2.0的好范例啊 PetShop ...

  4. Http协议网络对时工具

    2009-09-17 11:52:31 专业的网络对时软件大多採用NTP协议来获取专业时间server时间对时,也有採用SNTP协议的,本来也想做个SNTP或NTP协议的对时工具自己用,尽管我手上也有 ...

  5. 将图片序列保存为GIF文件

    http://stackoverflow.com/questions/11459568/issue-with-rebuilding-and-saving-gifs-using-tgifimage 将图 ...

  6. CustomViewWith_Image_Text_Video

    CustomViewOfTextVideoImage.rar https://github.com/Grishu/CustomViewWith_Image_Text_Video

  7. DTCC2016

    http://pan.baidu.com/share/home?uk=4043574767#category/type=0

  8. careercup-C和C++

    13.1 用C++写个方法,打印输出文件的最后K行. 解答: 一种方法是打开文件两次,第一次计算文件的行数N,第二次打开文件,跳过N-K行, 然后开始输出.如果文件很大,这种方法的时间开销会非常大. ...

  9. css实现响应式全屏背景

    利用css中 background-size:cover  填充整个viewport 注意: 一张背景图像素5000px*5000px在pc端 缩放都基本满足要求 不会出现模糊失真: 但是在移动端使用 ...

  10. c++ (P10—46)

    1 signed unsigned short long 四个修饰符.对int全部适用,对char只有signed和unsigned适用,long适用于double. 2 long int(占4个字节 ...