JavaScript 常被描述为一种基于原型的语言 (prototype-based language)-- 每个对象拥有一个原型对象, 对象以其原型为模板, 从原型继承方法和属性. 原型对象也可能拥有原型, 并从中继承方法和属性, 一层一层, 以此类推. 这种关系常被称为原型链 (prototype chain).
1,JavaScript 原型
JS 中每个函数都存在有一个原型对象属性 prototype. 并且所有函数的默认原型都是 Object 的实例.
2,JavaScript 原型链
每个继承父函数的子函数的对象都包含一个内部属性_proto_. 该属性包含一个指针, 指向父函数的 prototype. 若父函数的原型对象的_proto_属性为再上一层函数. 在此过程中就形成了原型链.
3, 特点
原型链实现了继承.
扩展资料:
原型对象的应用场景
在实际项目开发中, 我们都会使用别人开发的 JavaScript 类库, 如果我们发现当前代码库不存在我们需要的属性或方法, 我们不能直接去修改别人的源代码, 又不想为每个实例化对象单独定义相关属性或方法, 那么不妨考虑使用原型对象进行扩展.
例 1: 使用原型对象扩展自定义对象
例 2: 扩展数组类 (Array) 的功能:
为每一个数组对象添加一个方法, 可以查找某个元素的所在位置
- var arr = [10,20,30,40,50,60];
- arr.find(50); //50 在数组元素中的索引值 4
来源: http://www.css88.com/qa/javascript/11719.html