js 基于哈希表、原型链、作用域、属性类型可配置的多范式编程语言
值类型、引用类型、直接赋值;
原型是以对象形式存在的类型信息。
ECMA-262把对象定义为:无序属性的集合,其属性可以包含基本值,对象或者函数。所以js中对象就是一组键值对。
https://www.cnblogs.com/starof/p/4162354.html
Delegation[edit]
In prototype-based languages that use delegation, the language runtime is capable of dispatching the correct method or finding the right piece of data simply by following a series of delegation pointers (from object to its prototype) until a match is found. All that is required to establish this behavior-sharing between objects is the delegation pointer. Unlike the relationship between class and instance in class-based object-oriented languages, the relationship between the prototype and its offshoots does not require that the child object have a memory or structural similarity to the prototype beyond this link. As such, the child object can continue to be modified and amended over time without rearranging the structure of its associated prototype as in class-based systems. It is also important to note that not only data, but also methods can be added or changed. For this reason, some prototype-based languages refer to both data and methods as "slots" or "members".[citation needed]
https://www.cnblogs.com/feng9exe/p/8289967.html