关于prototype

    Object.prototype.contain = function(obj){
      for(var index in this){
        if(this[index] === obj){
          return true
        }
      }
      return false;
    }
    var o = {'name':'Tim','city':'Beijing'};
    console.log(o.contain('Tim'));
    var a = ['aa','bb','cc'];
    console.log(a.contain('bb'));

打印结果都是true.
但有个疑问是,
对象o的contain存在在 o / proto / contain: ƒ (obj)
而数组a的contain存在在 a / proto: Array(0) / proto / contain: ƒ (obj)

求各位大神给讲解下。
谢谢。

阅读 1.1k
1 个回答

他们是这么个关系

[].__proto__.__proto__ === Array.prototype.__proto__
Array.prototype.__proto__ === Object.prototype
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题