使用apply调用函数
题目描述
实现函数 callIt,调用之后满足如下条件
1、返回的结果为调用 fn 之后的结果
2、fn 的调用参数为 callIt 的第一个参数之后的全部参数
代码
1 /*因为arguments并非真正的数组,因此要获得callIt的第一个参数之后的所有参数, 2 不能直接使用slice方法截取,需要先将arguments转换为真正的数组才行*/ 3 //方法一:使用slice方法:var args = Array.prototype.slice.call(arguments); 4 function callIt(fn) { 5 //将arguments转化为数组后,截取第一个元素之后的所有元素 6 var args = Array.prototype.slice.call(arguments,1); 7 //或return fn.apply(null.args),因为给apply传递null,“”空字符串,默认都是this 8 return fn.apply(this,args); 9 } 10 11 //方法二:for循环 12 function callIt(fn) { 13 var args = new Array(); 14 for(var i=1; i<arguments.length; i++){ 15 args[i-1] = arguments[i]; 16 } 17 return fn.apply(this,args); 18 }
来源:牛客网
转载于:https://www.cnblogs.com/daheiylx/p/8900101.html
使用apply调用函数相关推荐
- javascript中实例对象和构造函数关系、原型语法、原型链、call实现继承、apply调用函数、bind拷贝函数、拷贝继承、class类、super、严格模式、高阶函数、闭包、递归、es6简介
实例对象和构造函数的关系及原型: 实例对象是通过构造函数创建出来的,实例对象的构造器constructor就是指向构造函数的:每个实例对象中的同一方法的指向是各不相同的,但是其属性值相同的属性可以相同 ...
- JavaScript的5种调用函数的方法
这篇文章详细的介绍了Javascript中各种函数调用的方法及其原理,对于理解JavaScript的函数有很大的帮助! JavaScript,调用函数的5种方法 一次又一次的,我发现,那些有bug的J ...
- base | 使用apply族函数进行向量化运算
R基础包base的apply族函数采用向量化运算实现批量计算,相较于for循环语句其代码更加简洁.运行速度也更快,恰当地运用这些函数能够极大提高代码质量.本篇主要介绍apply族函数的apply(), ...
- R 语言 apply 系列函数
apply() 4 4.0 > #apply系列函数 > > #apply(X, MARGIN, FUN, ...) > #参数列表: > #X:数组.矩阵.数据框 &g ...
- 手写call,apply,bind函数
涉及面试题 call,apply,bind函数内部实现是怎样的? 考虑两点: 第一个参数为undefined或null的时候,那么会转变为window 改变了this执行,让新的对象可以执行该函数. ...
- lambda调用函数_从另一个Lambda函数调用AWS Lambda函数
lambda调用函数 In this article, I am going to explain how to create an AWS Lambda function and then call ...
- python apply lambda_函数,lambda和apply用法
1 lambda lambda原型为:lambda 参数:操作(参数) lambda函数也叫匿名函数,即没有具体名称的函数,它允许快速定义单行函数,可以用在任何需要函数的地方.这区别于def定义的函数 ...
- echarts横坐标文字太长显示不完的两种解决办法:rotate旋转文字、调用函数让文字纵向排列
//方法1:横坐标文字太长显示不完,调用函数解决,在axisLabel下添加属性,让文字纵向排列: formatter:function(val){return val.split("&qu ...
- C语言指针调用函数_只愿与一人十指紧扣_新浪博客
涨姿势啦!指针调用函数的方式不小心被我学会啦! #include int max(int *a) { int i,m; m=*a; for(i=0;i<10;i++) ...
最新文章
- TypeScript 初识
- c++ 多重背包状态转移方程_背包问题之零钱兑换
- 关于_vmvare workstation装32ubuntu的问题
- post发送byte数组_KAFKA消息发送
- Spring的AOP-基本概念
- linux 内核编译安装及卸载
- 把一个sql where表达式转化为一个二叉树
- 查看java上下文切换,七日打卡--java并发编程之上下文切换
- 初创公司技术架构推荐
- c#实现json转kml、kmz、shp格式
- 利用Procexp工具监控Windows平台上的Oracle数据库性能
- Wowza服务器系列(5):使用rtsp协议向wowza推流的wowoza配置方法
- 阿里 java 电话面试_阿里Java开发电话面试经历--惨败
- kiriki模拟器Android9,Kirikiroid2模拟器
- linux 桌面什么图标好看,Xenlism WildFire:Linux桌面下的一款漂亮图标主题
- Gradle的神奇之处
- 找出大于200的最小的质数
- MySQL数据备份与恢复及sql语句使用方法
- 小程序预览报错60001,fail error:109
- div无法触发blur事件解决办法