javacript中apply和call的区别
apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性. 接受的参数是一个字符串。
call:和apply的意思一样,只不过是参数列表不一样. 接收的参数是一个数组。
例如:
- <script>
- window.firstName = "diz";
- window.lastName = "song";
- var myObject = {firstName: "my", lastName: "Object"};
- function HelloName(){
- console.log("Hello " + this.firstName + " " + this.lastName, " glad to meet you!");
- }
- HelloName.call(window);
- HelloName.call(myObject);
- </script>
- 运行结果为:
- Hello diz song glad to meet you!
- Hello my Object glad to meet you!
HelloName方法调用window或myObject中的对象属性。
- <script type="text/javascript">
- /*定义一个人类*/
- function Person(name,age)
- {
- this.name=name;
- this.age=age;
- }
- /*定义一个学生类*/
- functionStudent(name,age,grade)
- {
- Person.apply(this,arguments);
- this.grade=grade;
- }
- //创建一个学生类
- var student=new Student("qian",21,"一年级");
- //测试
- alert("name:"+student.name+"\n"+"age:"+student.age+"\n"+"grade:"+student.grade);
- //大家可以看到测试结果name:qian age:21 grade:一年级
- //学生类里面我没有给name和age属性赋值啊,为什么又存在这两个属性的值呢,这个就是apply的神奇之处.
- </script>
javacript中apply和call的区别的更多相关文章
- 瞬间记住Javascript中apply与call的区别
关于Javascript函数的apply与call方法的用法,网上的文章很多,我就不多话了.apply和call的作用很相似,但使用方式有区别 apply与call的第一个参数都是一个对象,这个对象就 ...
- JS中apply和call的区别和用法
Javascript中有一个call和apply方法,其作用基本相同,但是它们也有略微不同的地方. JS手册中对call方法的解释是: call方法:调用一个对象的一个方法,以另一个对象替换当前对象. ...
- javascript中apply和call的区别
请补充 136页 pdf 高级javascript设计
- javascript中apply、call和bind的区别,容量理解,值得转!
a) javascript中apply.call和bind的区别:http://www.cnblogs.com/cosiray/p/4512969.html b) 深入浅出 妙用Javascrip ...
- JS 中的this指向问题和call、apply、bind的区别
this的指向问题 一般情况下this对象指向调用函数的对象,全局环境中执行函数this对象指向window. function a(){ console.log(this); //输出函数a中的th ...
- js中call、apply和bind的区别
在JS中,这三者都是用来改变函数的this对象的指向的,他们有什么样的区别呢.在说区别之前还是先总结一下三者的相似之处:1.都是用来改变函数的this对象的指向的.2.第一个参数都是this要指向的对 ...
- 一个简单的例子让你很轻松地明白JavaScript中apply、call、bind三者的用法及区别
JavaScript中apply.call.bind三者的用法及区别 引言 正文 一.apply.call.bind的共同用法 二. apply 三. call 四. bind 五.其他应用场景 六. ...
- 深入浅出 妙用Javascript中apply、call、bind
apply.call 在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向. Jav ...
- 【优雅代码】深入浅出 妙用Javascript中apply、call、bind
这篇文章实在是很难下笔,因为网上相关文章不胜枚举. 巧合的是前些天看到阮老师的一篇文章的一句话: “对我来说,博客首先是一种知识管理工具,其次才是传播工具.我的技术文章,主要用来整理我还不懂的知识.我 ...
随机推荐
- linux下文件显示被加锁如何解决?
1.很多时候从别的机器上拷贝过来的文件,没有权限打开,上面有一个小锁. 2.判断是权限没有,查询ls -al得知文件的的所有者,和所有者在的组都不是本机 3.使用chown改变用户的所有者和所有者所在 ...
- tcpdump 进行抓包
tcpdump 进行抓包是怎么回事? tcp抓包是怎么搞的?
- Iterator设计模式--jdk1.7
参照:http://www.cnblogs.com/tstd/p/5049338.html java.util.Iterator<E>是一个接口,它的定义如下: public interf ...
- Codeforces963B - Destruction of a Tree
Portal Description 给出一个\(n(n\leq2\times10^5)\)个点的树,每次可以删除一个度数为偶数的点及其相连的边,求一种能够删掉整棵树的方案. Solution 简单起 ...
- linux监控平台搭建-磁盘
linux监控平台搭建-磁盘 磁盘:随着大数据快速发展.人工智能.自动化.云平台.数据量指数的增长.磁盘的使用量也在增长.目前的机器基本上采用SSD或者SATA盘,一直有人比较那个好.会不会使用时间短 ...
- 【Codevs1993】草地排水(最大流,Dinic)
题意:在农夫约翰的农场上,每逢下雨,Bessie最喜欢的三叶草地就积聚了一潭水.这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间.因此,农夫约翰修建了一套排水系统来使贝茜的草地免除被大水 ...
- 【CF721C】Journey(拓扑排序,最短路,DP)
题意:给一个无环的图,问用不超过T的时间从1到n最多可以经过多少个点.要求输出一条路径. 思路:因为无环,可以用DP做.不过因为时间最短的原因要拓扑排序后再DP,目测由底向上的更新也是可以的. ; . ...
- git提交node-modules报文件名过长无法提交问题
当报如下错误时候 fatal: unable to stat 'node_modules/gulp-connect/node_modules/gulp-util/node_modules/datefo ...
- linux 下高精度时间
今天在公司代码中看到了使用select函数的超时功能作定时器的用法,便整理了如下几个Linux下的微秒级别的定时器.在我的Ubutu10.10 双核环境中,编译通过. /* * @FileName: ...
- Visual Studio Code 使用教程
visual studio code以下简称vsc.vsc这个编辑器也火了一会了,最近在跟风学一波typescript,网络上很多人说vsc是最适合ts的编辑器,而且这个编辑器本身也很好用,所以学一下 ...