Review.md 项目笔记
写 Review.md 时积累的一些零散观察。
发布 2017年3月16日 标签
#javascript
#notes
~/posts/reviewmd-stuff $ cat post.md
写 Review.md 时积累的一些零散观察。
- 方法传递
- 很多场景下没法直接调用方法,因为 JS 是延迟激活——
setInterval、ajax 回调、文件读取完成回调等等都属于这类。 - 把方法当参数传出去之后,再被调用时
this的指向会变。this的真实位置:obj.fn()只是语法糖,对象方法的本体是call,形式是fn.call(this, arg1, arg2)——this是自己控制的。语法糖里this自动指向调用对象;没有这样的对象时则指向window。- 方法被传出去后
this改变就很难追,能不依赖this调用就尽量避免。
- 很多场景下没法直接调用方法,因为 JS 是延迟激活——
- GitHub RAW 可以拿来放静态文件当 CDN,也可以放在仓库里让别人贡献。
getURLVar:从 URL 后面的?key=value里取参数。不支持动态修改。- 另一个工具方法用正则把要传给 PHP 的字符串里的
&、+、?转义掉,避免被当成分隔符吃掉。这块可以做得更完善。 - Safari 里用
let声明 Vue 对象会报错,换var就好——原因是变量提升:var会被提升到作用域顶部,let不会。 - 一些一次性、固定的资源可以放到公共 class 里,减少用户的下载次数;用 CDN 的库也能省服务器流量。
- Vue 组件可以用隐藏 button 的
click事件和外部变量通信、调方法。- Vue 组件中的
data必须是函数,但可以是一个返回对象的函数。
- Vue 组件中的
- 用
\n切分文件可以按行读取。 - 准备把热门按钮也放到 GitHub 上,这样可以实时更新。