js小知识点
01.this
this的指向完全由函数在哪里调用决定。
- 在ES5中,this永远指向调用它的那个对象;
- 在ES6的箭头函数中没有this绑定,this指向箭头函数定义时作用域中的this;
判断this的指向
- 全局作用域、自执行函数、定时器传进的非箭头函数的this都指向window
- 严格模式下(use strict),全局作用域中的this,指向undefined
- 构造函数中的this指向当前实例
- 事件绑定函数中的this指向当前被绑定的元素
- 箭头函数中的this指向定义箭头函数上级作用域中的this
改变this的指向
-
使用call,apply,bind。call和apply改变this指向时,函数会立即执行,bind不会
-
保存成变量(let selt = this)
-
使用箭头函数
-
使用new实例化一个对象
-
严格模式下直接调用this指向undefined
02.柯里化的概念
柯里化是一种函数的转换。指将一个函数从可调用的f(a,b,c)转换为f(a)(b)(c)
主要运用了js中函数作为返回值这一特性。
//原函数
function sum(x, y, z) {
return x + y + z
}
console.log(sum(1, 2, 3))
//柯里化该函数
function sum1(x) {
return function (y) {
return function (z) {
return x + y + z
}
}
}
console.log(sum1(1)(2)(3))
//箭头函数更为简洁
var sum2 = x => y => z => {
return x + y + z
}
console.log(sum2(1)(2)(3))
代码成就万世基积沙镇海
梦想永在凌云意意气风发
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2020-11-09 HTML语义化