js深入浅出
# 函数
- 当写一个函数的时候先知道输入在知道输出,然后再写里面的逻辑。
- 返回对象的函数叫构造函数
- fn.call(this,arguments)
- call()的第一个参数是this,其他参数统称为 arguments
- 当你不确定参数的个数时,就使用 apply
- 柯里化函数:函数里面return一个函数里面再return一个函数或值
- 高阶函数:在数学和计算机科学中,高阶函数是至少满足下列一个条件的函数:
- 接受一个或多个函数作为输入:forEach sort map filter reduce
- 输出一个函数:lodash.curry
- 不过它也可以同时满足两个条件:Function.prototype.bind
# 异步
# 面向对象
返回对象的函数叫构造函数(类) 封装:提供接口实现消息的传入传出,例如把100行代码封装成函数,或封装成对象都是封装,主要是隐藏细节,减少沟通成本 继承:主要为了复用代码 多态:多态就是不同对象中同种行为的不同实现方式,主要是为了代码更加灵活,易于扩展
原型实现面向对象
window.Object.prototype 所有对象的原型
obj.proto 对象继承的子原型
每个对象都有 __proto__
这个__proto__
指向创建这个对象的函数的显式原型Object.prototype
每个数组都有 __proto__
这个__proto__
指向创建这个对象的函数的显式原型Array.prototype
每个数字类型都有 __proto__
这个__proto__
指向创建这个对象的函数的显式原型Number.prototype
数字类型与布尔值类型也是如此,不一一举例
- 循环(loop),指的是在满足条件的情况下,重复执行同一段代码。比如,while语句。
- 迭代(iterate),指的是按照某种顺序逐个访问列表中的每一项。比如,for语句。
- 遍历(traversal),指的是按照一定的规则访问树形结构中的每个节点,而且每个节点都只访问一次。
- 递归(recursion),指的是一个函数不断调用自身的行为。比如,以编程方式输出著名的斐波纳契数列。
上次更新: 2024/07/21, 21:46:04