关于javascript原型链上属性查找的小讨论

来源:互联网 发布:软件开发行业分类 编辑:程序博客网 时间:2024/05/15 23:51

今天和前端组的小伙伴们讨论了下js的原型链,得出了一个看似很简单的结论。

  1. 对于一个对象上属性的查找是递归的。
  2. 查找属性会从自身属性(OwnProperty)找起,如果不存在,就查看prototype中的存在不存在。
  3. prototype是一个对象

可以从以上的三点中,看出一个递归关系。给出一段代码,相信会很容易理解原型链上的对象查找。

var A = function () {    this.i = 2;}A.prototype.i = 3;var B = function() {    this.i = 4;}B.prototype = new A();var b = new B();console.log(b.i); //4;delete b.i;console.log(b.i); // 2;delete B.prototype.i;console.log(b.i); //3

从这个结果中可以很轻松看出原型链查找属性的顺序。

0 0