老是忘掉这两个东东的用下,写下来做个记录吧。
他们作用是一模一样的,只是传入的参数不一样
apply
apply接受两个参数,第一个制定了函数体内this对象的指向,第二个参数为一个带下标的集合(可遍历对象),apply方法把这个集合中的元素作为参数传递给被调用的函数:
var func = function(a, c, c){ alert([a,b,c]); //[1,2,3] } func.apply(null, [1,2,3]);
call
call传入的参数不固定,和apply相同的是,第一个参数也是代表函数体内的this指向,第二个参数开始往后,每个参数被依次传入函数:
var func = function(a, b, c){ alert([a,b,c]); //[1,2,3] } func.call(null, 1,2,3);
call是aplly的一颗语法糖。如果第一个参数为null,函数体内的this指向宿主对象,在浏览器中是window。
call和apply的用途
1.改变this指向
上面的例子就是啦
2.Function.prototype.bind
模拟Function.prototype.bind
Function.prototype.bind = function(context){ var self = this; return function(){ return self.apply(context, arguments); } }; var obj = { name: 'cxs' }; var func = function(){ alert(this.name); //cxs }.bind(obj); fun();
我花了好几天的时间让Spring Boot上传文件正常工作,但就像Spring一样,你不知道这个魔法是如何发挥作用的,即使多年来使用这个框架,你也必须通过谷歌搜索大量时间才能发现问题所在,并解决问题,就像你正在经历一个迷宫一样,这是一个可维护性的噩梦。 使用Spring Boot 2.2.0。M3进行文件上传,这两对设置有什么区别?哪个是正确的? 上面的“http”是否与Spring REST控制
尝试打印包含 698 个项目的 ArrayList 时收到以下错误: 我使用了以下代码,我希望收到错误: 我的问题是,如果数组的大小是698,那么max索引不应该是697吗?我不明白为什么错误给出指数:698。
本文向大家介绍Java中==与equals的区别小结,包括了Java中==与equals的区别小结的使用技巧和注意事项,需要的朋友参考一下 s2==s3的运算结果为:false s1==s3的运算结果为:true s2.equals(s3)的运算结果为:true 总结: == 与 equals()比较的内容是不同的,equals()方式是String类中的方法,它用于比较两个对象引用所指的内
本文向大家介绍Symfony2之session与cookie用法小结,包括了Symfony2之session与cookie用法小结的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Symfony2之session与cookie用法。分享给大家供大家参考,具体如下: session操作: 1. Set Session: 2. Get Session: 3. Clear Session: coo
本文向大家介绍python2 与python3的print区别小结,包括了python2 与python3的print区别小结的使用技巧和注意事项,需要的朋友参考一下 在Python2和Python3中都提供print()方法来打印信息,但两个版本间的print稍微有差异 主要体现在以下几个方面: 1.python3中print是一个内置函数,有多个参数,而python2中print是一个语法结构
本文向大家介绍yarn与npm的命令行小结,包括了yarn与npm的命令行小结的使用技巧和注意事项,需要的朋友参考一下 一、首先需要了解的命令 npm install === yarn —— install 安装是默认行为。 npm install taco --save === yarn add taco —— taco 包立即被保存到 package.json 中。
本文向大家介绍json与jsonp知识小结(推荐),包括了json与jsonp知识小结(推荐)的使用技巧和注意事项,需要的朋友参考一下 json 1. json 的值可以是下面这些类型: ① 数字(整数或浮点数),比如123,1.23 ② 字符串(在双引号中) ③ 逻辑值(true 或 false) ④ 数组(在方括号中) ⑤ 对象(在花括号中) ⑥ null 2. json解析方法 ① eval
https://docs.oracle.com/javase/8/docs/api/java/util/Spliterator.html SIZED特征值表示在遍历或拆分之前从估计大小()返回的值表示有限大小,在没有结构源修改的情况下,表示完整遍历将遇到的元素数量的精确计数。 SUBSIZE Character 值表示 trySplit() 生成的所有拆分器都将同时具有 SIZE 和 SUBSIZ