框架源码中的小技巧

1.在函数中传入window或this

目的:减少作用域链的查询
Vue传入this是为了兼容node,node中没有window而是global

2.函数中传入undefined

undefined是一个变量,可以进行赋值;null是关键字不能赋值,也不需要查询作用域链

3.defineProperty使属性不可更改

将属性在原型链直接挂载vue.prototype.$router,属性可以随意修改;
使用Object.defineProperty(vue.prototype, "$router", { get: function() {} })属性只定义get方法不定义set,属性将不可以被更改

4.模块支持检测

前端模块化:
民间:amd,cmd,umd
官方:es6 -> import
nodejs:commonjs

源码构建的三种模式

1.工厂模式(jQuery)

核心:写一个工厂方法,当需要某个对象时就调用工厂获取到对象。
使用场景:当需要大量产出不同对象的时候,如dom操作。

2.建造者模式

核心:把原型类拆分成不同模块,各个模块独立开发,最后组合上来
使用场景:多人合作的复杂的类,如Vue类

3.函数式

核心:tree-shaking,按需打包
使用场景:编写大而全的函数库

代码质量提升小技巧

1.享元模式
核心:提出两段相似代码的不同点(if-else)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值