程序员的自我修养第一章温故而知新--cpu、内存、显示设备、io设备早期都链接在一个总线上。后来出现了北桥芯片使得cpu,内存和高速的图形设备能够高速的交换数据。南桥芯片处理低速设备,比如磁盘,usb,键盘,鼠标等设备。--名言计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决。--充分利用cpu:分时系统(每个程序运行一段时间以后都主动让出cpu给其他程序),多任务系统(操作系统接管了
1.作用:call、apply和bind是Function对象自带的三个方法,都是为了改变函数体内部this的指向,区别是call()和apply()在调用函数之后会立即执行,而bind()方法调用并改变函数运行时上下文后,返回一个新的函数,供我们需要时再调用。它们的第一个参数,都是指定一个运行时的上下文,也就是this的指向。bind,和call,指定this指向的参数后,可以加入多个参数,而a
__proto__和constructor属性是对象所独有的;prototype属性是函数所独有的。但是由于JS中函数也是一种对象,所以函数也拥有__proto__和constructor属性。先来看下面这段代码:functionfoo(){}letf=newfoo();foo()是函数,它的constructor属性指向Function(),它的prototype属性指向foo.prototyp
1.单一原则。一个类应该有且只有一个变化的原因。单一职责原则将不同的职责分离到单独的类,每一个职责都是一个变化的中心。需求变化时,将通过更改职责相关的类来体现。如果一个类拥有多于一个的职责,则多个职责耦合在一起,会有多于一个原因来导致这个类发生变化。一个职责的变化可能会影响到其他的职责,另外,把多个职责耦合在一起,影响复用性。2.里氏替换原则,就是要求继承是严格的is-a关系。所有引用基类的地方必
依赖注入是面向对象编程很重要的思想,是实现解耦很重要的一种手段。依赖注入是指a依赖于b,a不直接在内部实例化b,而是通过注入的方式,也就是构建和使用分离。与之相关的思想是,面向接口编程,而不要面向实现编程。依赖注入一般需要面向对象语言,或者可以用一定方式实现面向对象的语言(比如lua可以利用元表实现类和继承,js或者ts也有类和对象的概念)。为啥需要面向对象语言呢?因为依赖注入需要面向接口编程,这
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号