前端进阶计划第44周作业
2015年第44周——面向对象
call/apply/bind
var f = function(){
alert(this.name);
return f;
};
f();
f.call({name: 'a'});
f.call({name: 'a'}).call({name: 'b'});
var f1 = f.bind({name: 'c'});
f1();
f1.call({name: 'd'});
f1.call({name: 'd'}).call({name: 'e'});
var f2 = f1.bind({name: 'f'});
f2();
f2.call({name: 'g'});
f2.call({name: 'g'}).call({name: 'h'});
手动实现bind
尽可能与Function.prototype.bind
保持一致。
实现构造函数的继承
var People = function(){};
var Father = function(){};
// Father 继承 People
inherit(Father, People);
为什么要进行 JS 模块化
- 方便多人协作开发
- 可以复用
- 更好的依赖管理
- 防止互相污染
- 更好的插拔
- 便于测试
</>