js基础练习题 二次封装函数
题目描述
1、返回一个函数 result,该函数接受一个参数
2、执行 result(str3) ,返回的结果与 fn(str1, str2, str3) 一致
输入
var sayIt = function(greeting, name, punctuation) { return greeting + ', ' + name + (punctuation || '!'); }; partial(sayIt, 'Hello', 'Ellie')('!!!');
输出
Hello, Ellie!!!
代码
function partial(fn, str1, str2) {
var result=function(str3){
return fn.apply(this,[str1,str2,str3])
};
return result
}
要点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
// call和apply必须显式地调用str3,立即执行
// bind不是立即执行,未传入str3时,并未执行,只是返回一个函数,等待参数传入
// this用于上下文不确定的情况
// call
function partial(fn, str1, str2) {
function result(str3) {
return fn.call( this , str1, str2, str3);
}
return result;
}
// apply(这里只是为了对照)
function partial(fn, str1, str2) {
function result(str3) {
return fn.apply( this , [str1, str2, str3]);
}
return result;
}
// ES6 this指向undefined.
const partial = (fn, str1, str2) => str3 => fn(str1, str2, str3);
|
转载于:https://www.cnblogs.com/jiye123/p/8134610.html
js基础练习题 二次封装函数相关推荐
- js基础练习题(1)
1.字符串 视频教程地址: js基础练习题 1.如何连接两个或者两个以上字符串? var cssname = 'box' var num = 1 var html = '<div class=& ...
- (五)JS基础知识二(通过图理解原型和原型链)【三座大山之一,必考!!!】
JS基础知识二(原型和原型链) 提问 class 继承 类型判断(instanceof) 原型 原型关系 基于原型的执行规则 原型链 说明 提问 如何准确判断一个变量是不是数组 class的原型本质 ...
- Linux基础练习题(二)
Linux基础练习题(二) 1.复制/etc/skel目录为/home/tuer1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. [root@www ~]# cp -r ...
- js笔记(一)js基础、程序结构、函数
大标题 小节 一.js 基础 1. javascript的组成: 2. 运行js: 3. 打印信息: 4. 关键字var: 5. js中的数据类型: 6. NaN(not a number): 7. ...
- Three.js基础探寻二——正交投影照相机
本篇主要介绍照相机中的正交投影照相机. 第一篇传送门:Three.js基础探寻一 1.照相机 图形学中的照相机定义了三维空间到二维屏幕的投影方式. 针对投影方式照相机分为正交投影照相机和透视投影照相机 ...
- Javascript学习总结 - JS基础系列 二
简述 本系列将持续更新Javascript基础部分的知识,谁都想掌握高端大气的技术,但是我觉得没有一个扎实的基础,我认为一切高阶技术对我来讲都是过眼云烟,要成为一名及格的前端工程师,必须把基础打扎实了 ...
- EXT.NET高效开发(二)——封装函数
在上一篇<EXT.NET高效开发(一)--概述>中,大致的介绍了一下EXT.NET.那么本篇就要继续完成未完成的事业了.说到高效开发,那就是八仙过海各显神通.比如使用代码生成器,这点大家可 ...
- Node.js基础(二)-- 模块化、npm与包
1. 模块化的基本概念 1.1 什么是模块化 模块化是指解决一个复杂问题时,自顶向下逐层把系统划分成若干模块的过程.对于整个系统来说,模块是可组合.分解和更换的单元. 1.1.1. 现实生活中的模块化 ...
- JS日期简介(二)常用日期函数
1,日期的构造函数 查看js构造函数内容,可以了解其所支持的参数类型 interface DateConstructor { new(): Date; new(value: number): Date ...
最新文章
- 列表是否包含简短的包含功能?
- javase总结报告
- mysql 配置文件在哪_MySQL+MyCat分库分表 读写分离配置
- php 仿高德,仿高德路线规划滑动效果
- Apache模块管理
- [转载] 【Python】set() 集合操作与运算 元素输出顺序
- Contexts for mac(程序快速调用工具)
- addEventListener兼容性问题
- CKA认证考题+解析
- Win11触摸键盘如何开启?
- java操作word宏
- ssh框架的学习之strut2小测试(2)
- win10桌面右键卡顿卡死解决方法
- NPDP知识推送-第七章产品生周期管理(3)
- HBase-Region的拆分与合并
- java未来发展潜力_Java语言未来是否还有发展前景
- HTTP:网络请求状态码204、304
- LightDB(pg) 通过DBeaver执行SQL发现SQL不能并行
- android 四方向摇杆源码,手游摇杆(一)最简单的四方向摇杆
- 等了15年,这本豆瓣评分高达9.3的编程巨著终于出版了!
热门文章
- 《C++PrimerPlus》阅读笔记 + 源码实践
- 笔记 - AliCloud 云数据库 简介
- [转]Oracle 表空间与数据文件
- mongodb 分组聚合_MongoDB按键值对进行聚合/分组
- Spring Boot实现简单的用户权限管理(超详细版)
- linux系统如何从字母切换为拼音,linux shell字母转换写法
- 【干货】路由黑洞的5种解决方法大PK
- EventBridge消息路由|高效构建消息路由能力
- OpenKruise 如何实现 K8s 社区首个规模化镜像预热能力
- 率先通过信通院容器规模化测评 阿里云获最高认证级别