写好JS的一些原则
各司其职
实现浅深两种主题
方案一
存在的问题
方案二
方案三
组件封装
方案一
结构化设计
展现效果: CSS
行为设计: API
控制流
- 使用自定义事件来解耦
方案二
解耦
- 将控制元素抽取成插件
- 插件与组件之间通过依赖注入方式建立联系
只解耦了一半
方案三
过程抽象
- 高阶函数
- once设计模式
- 纯函数(输入唯一 输出唯一 )
- 非纯函数
let x=10;
function foo() {
return x++;
}
function bar() {
return x*2
}
foo();
foo();
function reducible(fn) {
return function(...args) {
return args.reduce(fn);
}
}
const add = reducible((x, y) => {
return
})
// lib.js
function foo() {
}
命令式与声明式
- 命令式
- pascal
- C++
- JAVA
- 声明式