js框架、js库、js类包是什么关系?
单就js而言。
库:库、方法库或组件库。核心库是为二次开发学生准备的。它严谨、达标、独立、稳健、无污染。
框架:框架,主要面向用户,当然也面向二次开发者。它易于使用,易于扩展,可持续和可控。
有些框架,依靠它来开发东西,只能在它的阴影下生存,而不能独立。这样的框架不能用作库。比如jquery。
有些库,几乎没有框架特性,不好用,比如YUI2,所以其用户群只能局限于二次开发者或者水平更高的开发者。
作为一个框架,可能会为了易用性而牺牲严谨性。比如渲染字符串和数组的原型。这与图书馆的无污染理念相冲突。
因此,如果一个产品需要既是框架又是库,就需要权衡取舍。当然,他也可以选择有多种形式的输出(输出为独立的库或者易用的框架)。
所以,jquery是一个框架。其实目前js库都可以称为js框架。js类包是用oo的思想封装的方法包,jquery也可以看作是类包。