https://segmentfault.com/a/1190000017854473

http://jsrun.net/MZXKp/edit