javascript 原型,原型链是什么玩意

原型:
所有的函数在初始化的时候都有一个prototype的属性, 也就
是原型。
原型可以让我们预定义属性,包括方法,这些属性和方法会自
动应用到新对象实例上。
一个栗子:
function a(){}
a.prototype.b = function(){console.log('哈哈哈哈')}

 原型链:
 JS 的对象中有一个[[prototype]]属性, 这个属性就是对其他
 对象的引用。
 当我们在创建一个对象的时候:
 var foo = new a();
 调用new a(),其中的一个步骤就是把 foo中的[[prototype]] 
 (浏览器中可以使用__proto__访问)链接到a.prototype所指的对象。
 假如你现在想调用foo对象的一个属性,foo.myproperty
 第一步操作, 就是检查对象自身有没有这个属性,有的话就
 拿来用。
 假如没有的话, 那么就需要使用对象的[[prototype]]属性了。
 这个属性现在指向了a.prototype;
 假如还是没有找到的话, 那么继续找, 
 a.prototype.__proto__;
 。。。。。
 。。。。。
  这个链的终点是什么呢?
  就是Object.prototype;
  所有普通的[[prototype]]链最终会指向内置的Object.prototype;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容