找个自己写的项目,bash 下面执行下 grep -E -o -r ‘\w+’ ./ --include=’*.js’ --exclude-dir=’.git’ --exclude-dir="node_modules" | cut -d: -f 2 | sort | uniq -c | sort -nk 1 | tail -n 5
撸主的菜代码的统计结果 45 res 50 require 64 return 128 function 156 var
[email protected] 146 var 171 function 178 if 222 return 284 this
[email protected] 796 return 994 function 1022 Promise 1242 var 1611 this
是不是牛逼的JS库都能牛逼娴熟的使用this啊。
小伙伴们 秀秀你们的结果如何?
grep -E -o -r ‘\w+’ ./ --include=’*.js’ --exclude-dir=’lib’ --exclude-dir=’node_modules’ | cut -d: -f 2 | sort | uniq -c | sort -nk 1 | tail -n 5
某正在搞的项目 (SPA单页程序),大概60%进度:
前端 175 ko 176 if 183 var 198 this 353 function
后端 197 if 204 return 227 res 264 function 304 err
this多说明用constructor模式模拟传统OOP的类的用例比较多,需要存储实例的数据(存在实例化后的object上)以及避免重复定义实例方法(存在__proto__ <党的普罗托> 上)。 这相当于巧妙/hacky地合理利用了JS里this的set和get的不对称性:set只赋值到对应的object上,get先查找对应的object,没找到的话一直往__proto__向上搜寻一直搜到Object。 或者用于mixin往已有类加behavior。
在前端的用例一般前者可以用来建可重用的各种widget或者manager,后者可以用来建各种util。